编译原理第2章(刘磊 机械工业出版社)
- 格式:ppt
- 大小:763.00 KB
- 文档页数:6
第二章练习2.1解答:(a) 终结符号为:{(,),a,,,}非终结符号为:{S,L}开始符号为:S(b)① (a,a) ②(a,(a,a)) ③ (a,((a,a),(a,a)))(c) ① (a,a)S (L) (L,S) (S,S) (a,S) (a,a)② (a,(a,a))S (L) (L,S) (S,S) (a,S) (a,(L) (a,(L,S))(a,(S,S)) (a,(a,S)) (a,(a,a))③ (a,((a,a),(a,a)))S (L) (L,S) (S,S) (a,S) (a,(L)) (a,(L,S))(a,(S,S)) (a,((L),S)) (a,((L,S),S)) (a,((S,S),S))(a,((a,S),S)) (a,((a,a),S)) (a,((a,a),(L)))(a,((a,a),(L,S))) (a,((a,a),(S,S))) (a,((a,a),(a,S)))(a,((a,a),(a,a)))(d) ① (a,a)S (L) (L,S) (L,a) (S,a) (a,a)②(a,(a,a))S (L) (L,S) (L,(L)) (L,(L,S)) (L,(L,a))(L,(S,a)) (L,(a,a)) (S,(a,a)) (a,(a,a))③(a,((a,a),(a,a)))S (L) (L,S) (L,(L)) (L,(L,S)) (L,(L,(L)))(L,(L,(L,S))) (L,(L,(L,a))) (L,(L,(S,a)))(L,(L,(a,a))) (L,(S,(a,a))) (L,((L),(a,a)))(L,((L,S),(a,a))) (L,((L,a),(a,a))) (L,((S,a),(a,a)))(L,((a,a),(a,a))) (S,((a,a),(a,a))) (a,((a,a),(a,a)))(e) L(G[S]) = (α1,α2,...,αn)或a其中αi(1≤i≤n)是L(G[S])。
第2章习题解答1.文法G[S]为:S->Ac|aBA->abB->bc写出L(G[S])的全部元素。
[答案]S=>Ac=>abc或S=>aB=>abc所以L(G[S])={abc}==============================================2. 文法G[N]为:N->D|NDD->0|1|2|3|4|5|6|7|8|9G[N]的语言是什么?[答案]G[N]的语言是V+。
V={0,1,2,3,4,5,6,7,8,9}N=>ND=>NDD.... =>NDDDD...D=>D......D===============================================3.已知文法G[S]:S→dAB A→aA|a B→ε|bB问:相应的正规式是什么?G[S]能否改写成为等价的正规文法?[答案]正规式是daa*b*;相应的正规文法为(由自动机化简来):G[S]:S→dA A→a|aB B→aB|a|b|bC C→bC|b也可为(观察得来):G[S]:S→dA A→a|aA|aB B→bB|ε===================================================================== ==========4.已知文法G[Z]:Z->aZb|ab写出L(G[Z])的全部元素。
[答案]Z=>aZb=>aaZbb=>aaa..Z...bbb=> aaa..ab...bbbL(G[Z])={a n b n|n>=1}===================================================================== =========5.给出语言{a n b n c m|n>=1,m>=0}的上下文无关文法。
第二章部分习题答案2.1 考虑文法S→S S + | S S * | aa)证明文法可生成符号串 a a + a *解:S→S S * →S S + S * →a S + S * → a a + S *→ a a + a *b)为此符号串构造语法树解:c)文法生成什么样的语言?证明结论解:将a看作运算数,文法生成语言L={支持加法、乘法的表达式的后缀表示形式} 证明类似2.2题b)=====================================2.2 下列文法生成什么样的语言?证明你的结论。
是否有二义性?a)S →0 S 1 | 0 1解:生成语言L={0n1n | n>=1}证明:1) 证文法推导出的符号串都在L中i)考虑最小语法树,推导出的符号串01显然∈Lii)假定结点数<n的语法树对应的符号串都∈L,考虑结点数=n的语法树S,其结构必为,子树S1结点数<n,因此对应符号串t1∈L,S对应符号串为t=0 t1 1,因此t∈L综合i)、ii),1)得证2) 证L中符号串都可由文法推导出i)L中最短符号串01,显然可由文法推导出ii)假定L中长度<2n的符号串都可由文法推导出,考虑长度=2n的符号串t=0n1n,它可表示为0 t1 1,t1∈L且长度<2n ,因此它可被文法推导出,对应语法树,构造语法树,显然,它的输出为t,即t可被文法推导出综合i)、ii),2)得证综合1)、2),文法生成的语言即为L另外,文法没有二义性=====================================b)S →+ S S | - S S | a解:生成语言L={支持加法、减法的表达式的前缀表示形式}证明:1) 证文法推导出的符号串都在L中i)考虑最小语法树,推导出的符号串a显然∈Lii)假定结点数<n的语法树对应的符号串都∈L,考虑结点数=n的语法树S ,其结构必为,子树S1、S2结点数<n,因此对应符号串E1、E2∈L(前缀表达式),S对应符号串为E=+/- E1 E2,E也是前缀表达式。