编译原理第2章习题课
- 格式:doc
- 大小:207.50 KB
- 文档页数:34
Lw.《编译原理》课后习题答案第一章第1章引论第1题解释下列术语:(1)编译程序(2)源程序(3)目标程序(4)编译程序的前端(5)后端(6)遍答案:(1)编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言,则此翻译程序称为编译程序。
(2)源程序:源语言编写的程序称为源程序。
(3)目标程序:目标语言书写的程序称为目标程序。
(4)编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标机无关。
通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符号表管理等工作。
(5)后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关出错处理和符号表操作。
(6)遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。
第2题一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程序的总体结构图。
答案:一个典型的编译程序通常包含8个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。
其各部分的主要功能简述如下。
词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。
语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。
语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。
中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言代码,如三元式或四元式。
中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。
盛威网()专业的计算机学习网站1《编译原理》课后习题答案第一章目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。
表格管理程序:负责建立、填写和查找等一系列表格工作。
第二章 词法分析2.1 完成下列选择题:(1) 词法分析器的输出结果是 。
a. 单词的种别编码b. 单词在符号表中的位置c. 单词的种别编码和自身值d. 单词自身值(2) 正规式M1和M2等价是指 。
a. M1和M2的状态数相等b. M1和M2的有向边条数相等c. M1和M2所识别的语言集相等d. M1和M2状态数和有向边条数相等(3) DFA M(见图2-1)接受的字集为 。
a. 以0开头的二进制数组成的集合b. 以0结尾的二进制数组成的集合c. 含奇数个0的二进制数组成的集合d. 含偶数个0的二进制数组成的集合【解答】(1) c (2) c (3) d图2-1 习题2.1的DFA M2.2 什么是扫描器?扫描器的功能是什么?【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。
每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。
2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下:f(x,a)={x,y} f {x,b}={y}f(y,a)=Φ f{y,b}={x,y}试构造相应的确定有限自动机M ′。
【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。
先画出NFA M 相应的状态图,如图2-2所示。
图2-2 习题2.3的NFA M 用子集法构造状态转换矩阵,如表表2-1 状态转换矩阵1b将转换矩阵中的所有子集重新命名,形成表2-2所示的状态转换矩阵,即得到 M ′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图2-3所示。
表2-2 状态转换矩阵将图2-3所示的DFA M ′最小化。
第二章 词法分析2.1 完成下列选择题:(1) 词法分析器的输出结果是。
a. 单词的种别编码b. 单词在符号表中的位置c. 单词的种别编码和自身值d. 单词自身值(2) 正规式M1和M2等价是指。
a. M1和M2的状态数相等b. M1和M2的有向边条数相等c. M1和M2所识别的语言集相等d. M1和M2状态数和有向边条数相等(3) DFA M(见图2-1)接受的字集为。
a. 以0开头的二进制数组成的集合b. 以0结尾的二进制数组成的集合c. 含奇数个0的二进制数组成的集合d. 含偶数个0的二进制数组成的集合【解答】(1) c (2) c (3) d图2-1 习题2.1的DFA M2.2 什么是扫描器?扫描器的功能是什么?【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。
每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。
2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下:f(x,a)={x,y} f {x,b}={y}f(y,a)=Φ f{y,b}={x,y}试构造相应的确定有限自动机M ′。
【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。
先画出NFA M 相应的状态图,如图2-2所示。
图2-2 习题2.3的NFA M 用子集法构造状态转换矩阵,如表表2-1 状态转换矩阵1b将转换矩阵中的所有子集重新命名,形成表2-2所示的状态转换矩阵,即得到 M ′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图2-3所示。
表2-2 状态转换矩阵将图2-3所示的DFA M ′最小化。
第1章引论第1题解释下列术语:(1)编译程序(2)源程序(3)目标程序(4)编译程序的前端(5)后端(6)遍答案:(1) 编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言,则此翻译程序称为编译程序。
(2) 源程序:源语言编写的程序称为源程序。
(3) 目标程序:目标语言书写的程序称为目标程序。
(4) 编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标机无关。
通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符号表管理等工作。
(5) 后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关出错处理和符号表操作。
(6) 遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。
第2题一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程序的总体结构图。
答案:一个典型的编译程序通常包含8个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。
其各部分的主要功能简述如下。
词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。
语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。
语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。
中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言代码,如三元式或四元式。
中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。
目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。
表格管理程序:负责建立、填写和查找等一系列表格工作。
表格的作用是记录源程序的各类信息和编译各阶段的进展情况,编译的每个阶段所需信息多数都从表格中读取,产生的中间结果都记录在相应的表格中。
第2章习题参考答案P36-6 (1)L G ()1是0~9组成的数字串(2) 最左推导:N ND NDD NDDD DDDD DDD DD D N ND DD D N ND NDD DDD DD D ⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒0010120127334556568最右推导:N ND N ND N ND N D N ND N D N ND N ND N D ⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒77272712712701274434886868568P36-7 G(S)O N O D N S O AO A AD N→→→→→1357924680|||||||||||P36-8文法:E T E T E T TF T F T F F E i→+-→→|||*|/()| 最左推导:E E T T TF T i T i T F i F F i i F i i i E T T F F F i F i E i E T i T T i F T i i T i i F i i i ⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒⇒⇒⇒⇒⇒+⇒+⇒+⇒+⇒+⇒+********()*()*()*()*()*()*()最右推导:E E T E TF E T i E F i E i i T i i F i i i i i E T F T F F F E F E T F E F F E i F T i F F i F i i i i i ⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒⇒⇒⇒⇒+⇒+⇒+⇒+⇒+⇒+⇒+**********()*()*()*()*()*()*()*()语法树:/********************************EE FTE +T F F T +iiiEEFTE-T F F T -iiiEEFT+T F FTiii*i+i+ii-i-ii+i*i*****************/P36-9句子iiiei 有两个语法树:S iSeS iSei iiSei iiiei S iS iiSeS iiSei iiiei ⇒⇒⇒⇒⇒⇒⇒⇒P36-10/**************)(|)(|S T TTS S →→***************/P36-11/*************** L1:ε||cC C ab aAb A AC S →→→ L2:bcbBc B aA A AB S ||→→→εL3:εε||aBb B aAb A AB S →→→ L4:AB B A A B A S |01|10|→→→ε ***************/第2章习题参考答案P64–7(1)101101(|)*1 ε ε 1 0 11 确定化:0 1 {X} φ {1,2,3} φ φ φ {1,2,3} {2,3} {2,3,4} {2,3} {2,3} {2,3,4} {2,3,4} {2,3,5} {2,3,4}{2,3,5} {2,3} {2,3,4,Y} {2,3,4,Y}{2,3,5}{2,3,4,}1 00 0 1 1 0X 1 2 3 4 Y5 XY0 12 30 10 1 1 1 最小化:{,,,,,},{}{,,,,,}{,,}{,,,,,}{,,,}{,,,,},{},{}{,,,,}{,,}{,,,},{},{},{}{,,,}{,012345601234513501234512460123456012341350123456012310100==== 3012312401234560110112233234012345610101}{,,,}{,,}{,},{,}{},{},{}{,}{}{,}{,}{,}{}{,}{}{},{},{,},{},{},{}===== 010 0 1 00 1 0 1 1 1P64–8(1)01)0|1(*(2))5|0(|)5|0()9|8|7|6|5|4|3|2|1|0)(9|8|7|6|5|4|3|2|1(*(3)******)110|0(01|)110|0(10P64–12(a)aa,b a65 4 5 01 2 4 3 01确定化:a b {0} {0,1} {1} {0,1} {0,1} {1} {1} {0} φ φφφ给状态编号:a b 0 1 2 1 1 2 2 0 3 333aaa b b bba最小化:{,},{,}{,}{}{,}{}{,}{,}{,}{}{,},{},{}012301101223032330123a ba b ====a ab bab (b)b b aa ba0 1 2 3 01 2 0 2 3a bb aa a已经确定化了,进行最小化 最小化:{{,}, {,,,}}012345011012423451305234523452410243535353524012435011012424{,}{}{,}{,}{,,,}{,,,}{,,,}{,,,}{,}{,}{,}{,}{,}{,}{,}{,}{{,},{,},{,}}{,}{}{,}{,}{,}a b a b a b a b a b a =============={,}{,}{,}{,}{,}{,}{,}10243535353524 b a bb b aa baP64–14(1) 01 0 (2):(|)*0100 1 ε ε14 5 0 1 2 01YX YX2 1确定化:0 1 {X,1,Y} {1,Y} {2} {1,Y} {1,Y} {2} {2} {1,Y} φ φφφ给状态编号:0 1 0 1 2 1 1 2 2 1 3 3330 1 01 1 10 最小化:{,},{,}{,}{}{,}{}{,}{,}{,}{}{,},{},{}0123011012231323301230101====1 1 1 0第4章课后习题答案P81–1(1) 按照T,S 的顺序消除左递归ε|,)(||^)(T S T T S T T a S S G '→''→→'递归子程序:0 2 13 01 3procedure S; beginif sym='a' or sym='^' then abvance else if sym='(' then begin advance;T;if sym=')' then advance; else error; end else error end;procedure T; begin S;'T end;procedure 'T ; beginif sym=',' then begin advance; S;'T end end; 其中:sym:是输入串指针IP 所指的符号 advance:是把IP 调至下一个输入符号 error:是出错诊察程序 (2)FIRST(S)={a,^,(} FIRST(T)={a,^,(} FIRST('T )={,,ε} FOLLOW(S)={),,,#} FOLLOW(T)={)} FOLLOW('T )={)} 预测分析表a^() , # S S a →S →^S T →()TT ST →' T ST →' T ST →''T'→T ε '→'T ST ,是LL(1)文法P81–2文法:|^||)(|*||b a E P F F F P F T T T F T E E E T E →'→''→→''→+→''→εεε(1)FIRST(E)={(,a,b,^} FIRST(E')={+,ε} FIRST(T)={(,a,b,^} FIRST(T')={(,a,b,^,ε} FIRST(F)={(,a,b,^} FIRST(F')={*,ε} FIRST(P)={(,a,b,^} FOLLOW(E)={#,)} FOLLOW(E')={#,)} FOLLOW(T)={+,),#} FOLLOW(T')={+,),#}FOLLOW(F)={(,a,b,^,+,),#} FOLLOW(F')={(,a,b,^,+,),#} FOLLOW(P)={*,(,a,b,^,+,),#} (2)考虑下列产生式:'→+'→'→'→E E T T F F P E a b ||*|()|^||εεεFIRST(+E)∩FIRST(ε)={+}∩{ε}=φ FIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φ FIRST(T)∩FIRST(ε)={(,a,b,^}∩{ε}=φ FIRST(T)∩FOLLOW(T')={(,a,b,^}∩{+,),#}=φ FIRST(*F')∩FIRST(ε)={*}∩{ε}=φFIRST(*F')∩FOLLOW(F')={*}∩{(,a,b,^,+,),#}=φ FIRST((E))∩FIRST(a) ∩FIRST(b) ∩FIRST(^)=φ 所以,该文法式LL(1)文法. (3)+ * ( ) a b ^ # EE TE →'E TE →' E TE →' E TE →'E' '→+E E'→E ε'→E εTT F T →'T F T →' T F T →' T F T →'T''→T ε'→T T '→T ε '→T T '→T T '→T T '→T εFF P F →' F P F →' F P F →' F P F →'F' '→F ε '→'F F * '→F ε '→F ε '→F ε '→F ε '→F ε '→F εPP E →() P a → P b → P →^(4)procedure E; beginif sym='(' or sym='a' or sym='b' or sym='^' then begin T; E' end else error endprocedure E'; beginif sym='+'then begin advance; E endelse if sym<>')' and sym<>'#' then error endprocedure T; beginif sym='(' or sym='a' or sym='b' or sym='^' then begin F; T' end else error endprocedure T'; beginif sym='(' or sym='a' or sym='b' or sym='^' then Telse if sym='*' then error endprocedure F; beginif sym='(' or sym='a' or sym='b' or sym='^' then begin P; F' end else error endprocedure F'; beginif sym='*'then begin advance; F' end endprocedure P; beginif sym='a' or sym='b' or sym='^' then advanceelse if sym='(' thenbeginadvance; E;if sym=')' then advance else error endelse errorend;P81–3/***************(1) 是,满足三个条件。
1.构造正规式的DFA。
(1)1(0|1)*101NFA化为DFA:状态转换表:初态化简后得:(2)(a|b)*(aa|bb)(a|b)*NFA化为DFA:a 所以,DFA为:化简得:b1NFA到DFA:化简后得;2.将下图确定化和最小化。
aa0 1a,b解: 首先取A=ε-CLOSURE({0})={0},NFA确定化后的状态矩阵为:Q’a bA{0}{0,1}{1}B{0,1}{0,1}{1}C{1}{0}NFA确定化后的DFA为:A Bab bC将A,B 合并得:a bA Ca3.构造一个DFA,它接受∑={0,1}上所有满足如下条件的字符串,每个1都有0直接跟在后边。
解:按题意相应的正规表达式是0*(0 | 10)*0*构造相应的DFA,首先构造NFA为0 0 0εεY1 0用子集法确定化DFA 为1 1 044.给出NFA等价的正规式R。
方法一:首先将状态图转化为得0,1消去其余结点、0,1NFA等价的正规式为(0|1)*11方法二:NFA→右线性文法→正规式A→0A|1A|1BB→1CC→εA=0A+1A+1BB=1A=0A+1A+11A=(0+1)*11→(0|1)*115.试证明正规式(a|b)*与正规式(a*|b*)*是等价的。
证明:(1)正规式(a|b)*的NFAa其最简DFA 为=>b(2)正规式(a*|b*)*的 NFA 为:其最简化DFA 为:a=>bbDFA 的状态转换表:由于这两个正规式的最小DFA 相同,所以正规式(a|b)*等价于正规式(a*|b*)*。
6.设字母表∑={a,b},给出∑上的正规式R=b*ab(b|ab)*。
(1)试构造状态最小化的DFA M,使得L(M)=L(R)。
(2)求右线性文法G,使L(G)=L(M)。
解: (1)构造NFA:(2)将其化为DFA,转换矩阵为:b再将其最小化得:b a(2)对应的右线性文法G=({X,W,Y},{a,b},P,X)P: X→aW|bX W→b Y|b y→a W|bY|b文法G[〈单词〉]为:〈单词〉-〉〈标识符〉|〈整数〉〈标识符〉-〉〈标识符〉〈字母〉|〈标识符〉〈数字〉|〈字母〉〈整数〉-〉〈数字〉|〈整数〉〈数字〉〈字母〉-〉A|B|C〈数字〉|->1|2|3(1)改写文法G为G’,使L(G’)=L(G)。
(2)给出相应的有穷自动机。
解:(1)令D代表单词,I代表标识符,Z代表整数,有G’(D):D→I | ZI→A | B | C | IA | IB | IC | I1 | I2 | I3Z→1 | 2 | 3 | Z1 | Z2 | Z3(2) 左线性文法G’所对应的有穷自动机为:M=({S,D,I,Z},{1,2,3,A,B,C},f,S,{D})f: f(S,A)=I, f(S,B)=I, f(S,C)=If(S,1)=Z f(S,2)=Z f(S,3)=Zf(I,A)=I f(I,B)=I f(I,C)=If(I,1)=I f(I,2)=I f(I,3)=I f(I, ε)=If(Z,1)=Z f(Z,2)=Z f(Z,3)=Z f(Z, ε)=D给出下述文法所对应的正规式。
S→0A|1BA→1S|1B→0S|0解: 相应的正规式方程组为:S=0A+1B ①A=1S+1 ②B=0S+0 ③将②,③代入①,得S=01S+01+10S+10 ④对④使用求解规则,得 (01|10)* (01|10)为所求。
给出文法G[S],构造相应最小的DFA。
S->aS|bA|bA-> aS方法一:S=aS+bA+bA=aSS=aS+baS+b S=(a+ba)*b即:S=(a|ba)*b正规式(a|ba)*b对应的NFA:正规式(a|ba)*b对应的DFA:化简后:方法二:P43 右线性正规文法到有穷自动机的转换。
文法S->aS|bA|bA-> aS对应的NFA为:M=({S,A,D},{a,b},f,{S},{D})其中:f (S,a)=S, f(S,b)=A, f(S,b)=D, f(A,a)=S其NFA图为:S b AabDNFA确定化后的状态矩阵为:Q’a b1{S}{S}{ A,D} 2{A,D }{S}φNFA确定化后的DFA为:a b1 2a给出下述文法所对应的正规式:S->aAA->bA+aB+bB->aA解:将文法改为:S=aA ①A=bA+aB+b ②B=aA ③将③代入②,得A=bA+aaA+b ④将④用求解规则,得A= (b|aa)*b ⑤,带入①得,S= a(b|aa)*b,故文法所对应的正规式为R= a(b|aa)*b。
给出与下图等价的正规文法G。
aA aB b Cb a bDb答: 该有穷自动机为:M=({A,B,C,D},{a,b},f,{A},{C,D})其中f(A,a)=B, f(A,b)=D, f(B,a)=φ, f(B,b)=C, f(C,a)=A, f(C,b)=D, f(D,a)=B, f(D,b)=D 根据其转换规则,与其等价的正规文法G为G=({A,B,C,D},{a,b},P,A),其中P : A→aB|bD B→bC C→aA|bD|ε D→aB|bD|ε.解释下列术语和概念:(1)确定有穷自动机答:一个确定有穷自动机M是一个五元组M=(Q,Σ,f,S,Z),其中:Q是一个有穷状态集合,每一个元素称为一个状态;Σ是一个有穷输入字母表,每个元素称为一个输入字符;f是一个从Q*Σ到Q的单值映射;f(q i,a)=q j (q i,q j∈Q,a∈Σ)表示当前状态为q i,输入字符为a时,自动机将转换到下一个状态q j,q j称为 q i的一个后继状态。
我们说状态转换函数是单值函数,是指 f(q i,a)惟一地确定了下一个要转移的状态,即每个状态的所有输出边上标记的输入字符不同。
S∈Q,是惟一的一个初态;Z 真包含于Q,是一个终态集。
(2)非确定有穷自动机一个非确定有穷自动机M是一个五元组M=(Q,Σ,f,S,Z),其中:Q是一个有穷状态集合,每一个元素称为一个状态;Σ是一个有穷输入字母表,每个元素称为一个输入字符;状态转换函数是一个多值函数。
f(q i,a)={某些状态的集合}(q i∈Q),表示不能由当前状态、当前输入字符惟一地确定下一个要转移的状态,即允许同一个状态对同一输入字符有不同的输出边。
S 包含于 A,是非空初态集。
Z 真包含于 Q,是一个终态集。
(3)正规式和正规集有字母表Σ={a1,a2,…an},在字母表Σ上的正规式和它所表示的正规集可用如下规则来定义:(1)φ是Σ是的正规式,它所表示的正规集是φ,即空集{}。
(2)ε是Σ上的正规式,它所表示的正规集仅含一空符号串,即{ε} 。
(3)是Σ上的一个正规式,它所表示的正规集是由单个符号ai 所组成,即{ai}。
(4)e1和e2是Σ是的正规式,它们所表示的正规集分别为L(e1)和L(e2),则①e1 | e2是Σ上的一个正规式,它所表示的正规集为L(e1 | e2)=L(e1)∪L(e2).② e1e2是Σ上的一个正规式,它所表示的正规集为L(e1e2)=L(e1)L(e2).③ (e1)*是Σ上的一个正规式,它所表示的正规集为L((e1)*)=L((e1))*.3.1构造下列正规式相应的DFA。
(1)1 ( 0 | 1)*101(2)( a | b )*( aa | bb )( a | b )*(3)(( 0 | 1 )* | ( 11 ))*(4)( 0 | 11*0 )*3.2将下面图(a)和(b)分别确定化和最小化.aa0 1a,b(a)b b a0 2 b 3aa aa b b a1 4 5b(b)构造一个DFA,他接收∑={0,1}上所有满足如下条件的字符串,每个1都有0直接跟在右边。
给出文法G[S],构造相应最小的DFA。
S aS | bA | bA aS给出下述文法所对应的正规式:S->AaA->bA+aB+bB->aA给出与下图等价的正规文法G。
aA aB b Cb a bDb给出与图中的NFA等价的正规式R。
文法G[〈单词〉]为:〈单词〉〈标识符〉| 〈整数〉〈标识符〉〈标识符〉〈字母〉| 〈标识符〉〈数字〉|〈字母〉〈整数〉〈数字〉|〈整数〉〈数字〉〈字母〉 A | B | C〈数字〉 1 | 2 | 3(1)改写文法G为G’,使L(G’)=L(G).(2)给出相应的有穷自动机。
试证明正规式(a|b)*与正规式(a*|b*)*是等价的。
3.10给出下述文法所对应的正规式:S 0A | 1BA 1S | 1B 0S | 03.11设字母表Σ={a,b},给出Σ上的正规式R=b*ab(b | ab)*.(1)试构造状态最小化的DFA M,使得L(M)=L(R)。
(2) 求右线性文法G,使L(G)=L(M)。
3.12解释下列术语和概念。
(1)确定有穷自动机(2)非确定有穷自动机(3)正规式和正规集。