编译原理第三版课后习题解答

上传人:枫** 文档编号:543504556 上传时间:2022-09-08 格式:DOC 页数:20 大小:735KB
返回 下载 相关 举报
编译原理第三版课后习题解答_第1页
第1页 / 共20页
编译原理第三版课后习题解答_第2页
第2页 / 共20页
编译原理第三版课后习题解答_第3页
第3页 / 共20页
编译原理第三版课后习题解答_第4页
第4页 / 共20页
编译原理第三版课后习题解答_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《编译原理第三版课后习题解答》由会员分享,可在线阅读,更多相关《编译原理第三版课后习题解答(20页珍藏版)》请在金锄头文库上搜索。

1、 .wd.第二章习题解答P36-6(1)是09组成的数字串(2)最左推导:最右推导:P36-7G(S)P36-8文法:最左推导:最右推导:语法树:/*/P36-9句子iiiei有两个语法树:P36-10/*/P36-11/*L1:L2:L3:L4:*/第三章习题参考答案P647(1)XYX1234Y5 0 1 1 0 1 1确定化:01X1,2,31,2,32,32,3,42,32,32,3,42,3,42,3,52,3,42,3,52,32,3,4,Y2,3,4,Y2,3,52,3,4, 0320 1 01 0 0 1 1 0654 0 1 0 1 1 1最小化: 002 1 1 0 0 1

2、 0543 0 1 0 1 1 1P648(1) (2)(3)P6412(a) a10 a,b a确定化:ab00,110,10,1110给状态编号:ab012112203333 a10 a a b b b32 b a最小化: a a210 b ba b(b)032 b b a a b a a b541 b a a a已经确定化了,进展最小化最小化:021 b b a a baP6414 (1) 010 1 0(2):YX2 0 1Y1X 0确定化:01X,1,Y1,Y21,Y1,Y221,Y给状态编号:01012112213333 010 0 1 032 1 1 1 0最小化: 0310 1

3、 1 1 0 0第四章P811(1) 按照T,S的顺序消除左递归递归子程序:procedure S;beginif sym=a or sym= then abvanceelse if sym=( then beginadvance;T;if sym=) then advance;else error; endelse errorend;procedure T;beginS;end;procedure ;beginif sym=, then beginadvance;S;endend;其中:sym:是输入串指针IP所指的符号advance:是把IP调至下一个输入符号error:是出错诊察程序(2

4、)FIRST(S)=a,(FIRST(T)=a,(FIRST()=,FOLLOW(S)=),#FOLLOW(T)=)FOLLOW()=)预测分析表a(),#ST是LL(1)文法P812文法:(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(

5、P)=*,(,a,b,+,),#(2)考虑以下产生式: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)+*()ab#EETTFFP(4)procedure E;beginif sym=( or sym=a or sym=b or sym= then be

6、gin T; E end else errorendprocedure E;beginif sym=+ then begin advance; E end else if sym) and sym# then errorendprocedure T;beginif sym=( or sym=a or sym=b or sym= then begin F; T end else errorendprocedure T;beginif sym=( or sym=a or sym=b or sym= then T else if sym=* then errorendprocedure F;beginif sym=( or sym=a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号