编译原理第4章习题解答.doc

编译原理第4章习题解答.doc

ID:50514682

大小:207.50 KB

页数:11页

时间:2020-03-10

编译原理第4章习题解答.doc_第1页
编译原理第4章习题解答.doc_第2页
编译原理第4章习题解答.doc_第3页
编译原理第4章习题解答.doc_第4页
编译原理第4章习题解答.doc_第5页
资源描述:

《编译原理第4章习题解答.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章习题解答:1,2,3,4解答略!5.解答:(1)×(2)√(3)×(4)√(5)√(6)√(7)×(8)×6.解答:(1)A:④B:③C:③D:④E:②(2)A:④B:④C:③D:③E:②7.解答:(1)消除给定文法中的左递归,并提取公因子:bexpr→bterm{orbterm}bterm→bfactor{andbfactor}bfactor→notbfactor

2、(bexpr)

3、true

4、false(2)用类C语言写出其递归分析程序:   voidbexpr();{  bterm();  WHILE(lookahead=='or'){   

5、   match('or');      bterm();   }}voidbterm();{  bfactor();  WHILE(lookahead=='and'){    match('and');    bfactor();  }}voidbfactor();{  if(llokahead=='not')then{     match('not');     bfactor(); }elseif(lookahead=='(')then{        match(‘(');        bexpr();        match(')');

6、      } elseif(lookahead=='true')then match('true) elseif(lookahead=='false')          thenmatch('false');  elseerror;}8.解答:消除所给文法的左递归,得G':        S→(L)

7、a        L→SL'        L'→,SL'

8、e实现预测分析器的不含递归调用的一种有效方法是使用一张分析表和一个栈进行联合控制,下面构造预测分析表:根据文法G'有:First(S)={(,a)Follow(S)={),,,#}First

9、(L)={(,a)Follow(L)={)}First(L')={,}Follow(L')={)}按以上结果,构造预测分析表M如下:文法G'是LL(1)的,因为它的LL(1)分析表不含多重定义入口。预测分析器对输入符号串(a,(a,a))做出的分析动作如下:步骤栈剩余输入串输出1#S(a,(a,a))##2#)L(a,(a,a))#S→(L)3#)La,(a,a))#4#)L'Sa,(a,a))#L→SL'5#)L'aa,(a,a))#S→a6#)L',(a,a))#7#)L'S,,(a,a))#L'→,SL'8#)L'S(a,a))#9#)L')L

10、((a,a))#S→(L)10#)L')La,a))#11#)L')L'Sa,a))#L→SL'12#)L')L'aa,a))#S→a13#)L')L',a))#14#)L')L'S,,a))#L'→,SL'15#)L')L'Sa))#16#)L')L'aa))#S→a17#)L')L'))#18#)L')))#L'→e19#)L')#20#))#L'→e21##   9.解答:各非终结符的First集:First(S)={First(A){e}}∪{First(B){e}}∪{e}∪{b}={a,b,e}First(A)={b}∪{e}={b,

11、e}First(B)={e}∪{a}={a,e}First(C)={First(A){e}}∪First(D)∪First(b)={a,b,c}First(D)={a}∪{c}={a,c}各个候选式的First集为:First(AB)={a,b,e}First(bC)={b}First(e)={e}First(b)={b}First(aD)={a}First(AD)={a,b,c}First(b)={b}First(aS)={a}First(c)={c}各非终结符的Follow集的计算:Follow(S)={#}∪Follow(D)={#}Foll

12、ow(A)=(First(B){e})∪Follow(S)∪First(D)={a,#,c}Follow(B)=Follow(S)={#}Follow(C)=Follow(S)={#}Follow(D)=Follow(B)∪Follow(C)={#}10.解答:(1)求First和Follow集First(E)=First(T)={(,a,b,∧}⑦First(E')={+,e}⑥First(T)=First(F)={(,a,b,∧}④First(T')={(,a,b,∧,e}⑤First(F)=First(P)={(,a,b,∧}③First(F

13、')={*,e}②First(P)={(,a,b,∧}①(计算顺序)Follow(E)={#,)}Follo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。