程序设计语言编译原理第3版课后答案.doc
《程序设计语言编译原理第3版课后答案.doc》由会员分享,可在线阅读,更多相关《程序设计语言编译原理第3版课后答案.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流程序设计语言编译原理第3版课后答案【精品文档】第 20 页第二章P36-6(1)是09组成的数字串(2)最左推导:最右推导:P36-7G(S)P36-8文法:最左推导:最右推导:语法树:/*P36-9句子iiiei有两个语法树:P36-10P36-11L1:L2:L3:L4:第三章习题参考答案P647(1)XY X1234Y5 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 0
2、654 0 1 0 1 1 1最小化: 002 1 1 0 0 1 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 b a b(b)032 b b a a b a a b541 b a a a已经确定化了,进行最小化最小化:021 b b a a b aP6414 (1) 010 1 0(2):YX 2 0 1Y1X 0确定化:01X,1,Y1,Y21,Y1,Y221,Y给状态编号:010121122
3、13333 010 0 1 032 1 1 1 0最小化: 0310 1 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所指的符号
4、 advance:是把IP调至下一个输入符号error:是出错诊察程序(2)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)=(,
5、a,b,+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(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
6、sym=( or sym=a or sym=b or sym= then begin 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
7、 if sym=* then errorendprocedure F;beginif sym=( or sym=a or sym=b or sym= then begin P; F end else errorendprocedure F;beginif sym=* then begin advance; F endendprocedure P;beginif sym=a or sym=b or sym= then advance else if sym=( thenbeginadvance; E;if sym=) then advance else errorendelse errorend
8、;P813(1) 是,满足三个条件。(2) 不是,对于A不满足条件3。(3) 不是,A、B均不满足条件3。(4) 是,满足三个条件。第五章P1331短语: E+T*F, T*F,直接短语: T*F句柄: T*FP1332文法:(1)最左推导:最右推导:(2)(a,a),(a),a)(S,a),(a),a)(T,a),(a),a)(T,S),(a),a)(T),(a),a)(S,(a),a)(T,(a),a)(T,S,(a),a)(T,(a),a)(T,(S),a)(T,(T),a)(T,S),a)(T),a)(S,a)(T,S)(T)S“移进-归约”过程:步骤栈输入串动作0#(a,a),(a)
9、,a)#预备1#(a,a),(a),a)#进2#(a,a),(a),a)#进3#(a,a),(a),a)#进4#(a,a),(a),a)#进5#(S,a),(a),a)#归6#(T,a),(a),a)#归 7#(T,a),(a),a)#进8#(T,a),(a),a)#进9#(T,S),(a),a)#归10#(T),(a),a)#归11#(T),(a),a)#进12#(S,(a),a)#归13#(T,(a),a)#归 14#(T,(a),a)#进15#(T,(a),a)#进16#(T,S,(a),a)#归17#(T,(a),a)#归18#(T,(a),a)#进19#(T,(a),a)#进20#(
10、T,(a),a)#进21#(T,(S),a)#归22#(T,(T),a)#归23#(T,(T),a)#进24#(T,S),a)#归25#(T),a)#归26#(T),a)#进27#(S,a)#归28#(T,a)#归29#(T,a)#进30#(T,a)#进31#(T,S)#归32#(T)#归33#(T)#进34#S#归P1333(1) FIRSTVT(S)=a,(FIRSTVT(T)=,a,(LASTVT(S)=a,)LASTVT(T)=,a,)(2)a(),a(=,是算符文法,并且是算符优先文法(3)优先函数a(),f44244g55523(4) 栈输入字符串动作#(a,(a,a))#预备#(
11、a, (a,a)#进#(a, (a,a)#进#(t, (a,a)#归#(t,(a,a))#进#(t,(a,a)#进#(t,(a,a)#进#(t,(t,a)#归#(t,(t,a)#进#(t,(t,a)#进#(t,(t,s)#归#(t,(t)#归#(t,(t)#进#(t,s)#归#(t)#归#(t)#进# s#归successP1345(1)0.1.2.3.4.5.6.7.8.9.10.11.(2)1987 S A S11100 a432 A S d 56确定化:SAab0,2,5,7,101,2,5,7,8,102,3,5,7,101161,2,5,7,8,102,5,7,8,102,3,5,7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计语言 编译 原理 课后 答案
限制150内