编译原理(第2版)第二版课后习题答案2.pdf
《编译原理(第2版)第二版课后习题答案2.pdf》由会员分享,可在线阅读,更多相关《编译原理(第2版)第二版课后习题答案2.pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章N=D=0,1,2,3,45,6,7,8,9N=ND=NDDL=a|a(0|l|3.|9)n 且 n=l(0|l|39)n 且 n=lab,an bn n =1第6题.表达达=项=因子=i(2)表达达=项=因子=(表达达)=(项)=(因子)=Xi)(3)表达达=项=项*因子=因子*因子=1*1(4)表达达 =表达达 +项=项+项=项*因子+项=因子*因子+项=因子*因子 +因子=i*i+i(5)表达达 =表达达 +项 =项+项=因子 +项=i+项=i+因子 =i+(表达达)=i+(表达达 +项)=1+(因子+因子)=i+(i+i)(6)表达达 =表达达 +项=项+项=因子 +项=i+项=
2、i+项 *因子 =i+因子 *因子 =i+i*i第 7 题+表 达 式 第9题语法树推 导:S=S S*=S S+S*=a a+a*1 1.推导:E=E+T=E+T*F语 法 树:直 接 短 语:T*F句 柄:T*F1 2.短通乐 T 直接短语挨TxF句柄:13.(1 最左推导左 S=ABS=aBS=aSBBS=aBBS=abBS=abbS=abbAa=abbaa最右推导右 S=ABS=ABAa=ABaa=ASBBaa=ASBbaa=ASbbaa=Abbaa=al bl b2a2a3(2)文法:S ABSS AaS A aB b(3)短语语 al,bl,b2,a2,bb,aa,abbaa,直接
3、短语接al,bl,b2,a2,句柄:al14(1)S ABA aAb|cB aBb|s(2)S ISOS AA 0Al|s第四章1.1.构造下列正规式相应的D F A(1)1(0|1)*1 0 1N F A(2)1(1 0 1 0*1 1(0 1 0)*1)*0N F A(3)N F A(4)NFA2.解:构 造DFA矩阵表示01X0ZXZ*X,ZYX.Z*X,ZX,YYX.YX.YX,Y,Z)XX.Y.Z)*X,Y,Z)X.Y其 中。表示初态,*表示终态用 0,1,2,3,4,5 分别代替X Z 用 Z得DFA状态图为:Y X,Y X,Y,Z)3.解:构 造DFA矩阵表示构 造DFA的矩阵表
4、示01Sv,QQ,UV,QZ,VQ,UQ,UVQ,U,ZZ,V*ZVZQ,U,Z*V,ZQ,U,Z)ZZZ其 中 表示:町态,*表示终态替换后的矩阵010 12构造D F A 状态转换图(略)1322453*66465*35666转换为4.(1)解构造状态转换矩阵:ab 0 ,0,1 1 0,1 ,0,1 1 1 0 2,3 0,1 ab0,121,1220 2,3 a=0,3,0,1 0,l a=l,l 0,l b=2,22)解:首先把 M的状态幡分为两组:组0,和非终和非1,2,3,4,5此时6=(0,1,2,3,4力)l,2,3,4,3a=l,3,0,5(1,2,3,44b=4,3,2,
5、5)由于4a=0 l,2,3,5a=l,3,5因此应此1,2,3,4力划分为4,1,2,3,5)G=(0412,3,5)l,2,3,5a=1,3,5)1,2,3,5 b=4,3,2因为l,5b=4 23b=2,3所以应以1,2,3,5划分为1,5 2,3G=(O1,52,34)l,5a=l,5 l,5b=4所以1,5不用再划用2,3a=l,3 2,3b=3,2因 为2a=l 3a=3所以2,3应划分为23所以化简以化G=(0,2,3,4,1,5A a7.去除多余产1除多余产生造NFA如下确定化,构造DFA矩阵abSAQAAB,ZB,ZQDQQD,ZDABD,ZADBQD变换为ab0131122
6、*343354165*14634化简:G=(0,1,3,4,6),(2,5)0,1,3,4,6 a=l,3 0,1,3,4,6 b=2,3,4,5,6)所以将 0,1,3,4,6 划 分 为 0,4,6 1,3G=(0,4,6),(1,3),(2,5)(0,4,6 b=3,6,4)所以 划分为 0 ,4,6G=(0),(4,6),(1,3),(2,5)不能再划分,分 别 用 0,4,1,2 代表各状态,构造D F A 状态转换图如下;8.代入得S =O(1 S|1)|l(0 S|0)=0 1 (S|e )|1 0(S|e)=(0 1|1 0)(S|e)=(0 1 1 1 0)S|(0 1 1
7、1 0)=(0 1|1 0)*(0 1|1 0)构造N F A由 N F A 可得正规式为(0 1 1 1 0)*(0 1 1 1 0)=(0 1 1 1 0)*9.状态态转换函数不是镌,增加死状态8,G =(1,2,3,45,8)X6,7)(l,2,3,4,58)a=(3,4,8)(3,4 应分出(1,2,3,4,郛)b=(2,6,7,8)(l,2,3,4,58)c=(3,8)(l,2,3,4,58)d=(3,8)所以应以(1,2,3,4,郃访为(1,2,5,8)(3,4)G =(1,2,5,8)(3,4)(6,7)(1,2,5,8)a=(3,4,8)8应分出(l,2,5,8)b=(2,8)
8、(1,2,5,8)6(8)(l,2,5,8)d=(8)G =(1,2,5)(8),(3,4)(6,7)(l,2,5)a=(3,4,8)5应分出G =(1,2),(3,4),5(6,7),(8)去掉死状态8,最终终结果(1,2)(3,4)5,(6,7)以1,3,5,6弋替,最简D F A为正规式:b*a(da|c)*bb*第五章1.s-a r|(T)T-T,S|S(a,(a,a)S=(T)=(T,S)=(S,S)=(a,S)=(a,(T)=(a,(T,S)=(a,(S,S)=(a,(a,a)S=(T)=(T,S)=(S,S)=(T),S)=(T,S),S)=(T,S,S),S)=(S,S,S),
9、S)=(T),S,S),S)=(T,S),S,S),S)=(S,S),S,S),S )=(a,S),S,S),S)=(a,a),S,S),S)=(a,a),A,S),S)=(a,a),A,(T),S)=(a,a),A,(S),S)=(a,a),A,(a),S)=(a,a),A,(a),a)S-a r|(T)T-T,ST-S消除直接左递归:s-a r|(T)T-S TT-,S T|gSELECT(S-a)=aSELECT(S-A)=ASELECT(S-(T)=(SELECT(T-S T5)=a,A,(SELECT(T,-,S T,)=,SELECT(T-)=FOLLOW(T)=FOLLOW(T)
10、=)构造预测分析表aA()#s-a-A-(T)TST-ST9 s rT,-,S T分 析 符 号 串(a,a)#分析栈剩余输入串所用产生式#s(a,a)#S-(T)#)T(a,a)#(匹配#)Ta,a)#T-S T#)r sa,a)#S-a#)r aa,a)#a 匹配#)r,a)#T 1 ,S F#)r s,a)#,匹配#)r sa)#S-a#)T,aa)#a 匹配#)r)#r -c#)#)匹配#接受2.E-TE E 2+E E-T-FT T5-T T-gP-(E)P-a P-b P-AF-PF F,-*F,F-非终结符名是否=eFIRST 集FOLLOW 集E否(,a,b,A)#,)E,是+
11、,#,)T否(,a,b,A)+,#,)T,是 e,(,a,b,A)+,#,)F否(,a,b,A)(,a,b,+,#,)F,是*,2(,a,b,A,+,#,)P否(,a,b,A)*,(,a,b,3#,)SELECT(E-T E,)=FIRST(TE,)=FIRST(T)=(,a,b,A)SELECT(E5-+E)=+SELECT(E5-e)=FOLLOW(E,)=#,)SELECT(T-F T,)=FIRST(F)=(,a,b,A)SELECT(T5 T)=FIRST(T)=(,a,b,A)SELECT(T,-e)=FOLLOW(T,)=+,#,)SELECT(F-P F,)=FIRST(F)=
12、(,a,b,ASELECT(F,-*F,)=*SELECT(F,-e)=FOLLOW(F,)=(,a,b,3 +,#,)3.S-MH S-a H-Lso H-K-dML K-&L-eHf M-K M-bLMFIRST(S)=FIRST(MH)=FIRST(M)UFIRST(H)U 殳 Ua=a,d,b,eFIRST(H)=FIRST(L)U 殳=e,1FIRST(K)=dFIRST(M)=FIRST(K)U(b=d,b,&FOLLOW(S)=#,oFOLLOW(H)=FOLLOW(S)Uf =f,#,oFOLLOW(K)=FOLLOW(M)=e,#,oFOLLOW(L)=FIRST(S)-坛
13、Uo UFOLLOW(K)U FIRST(M)-坛 UFOLLOW(M)=a,d,b,e,#,o)FOLLOW(M)=FIRST(H)殳 UFOLLOW(S)14 FIRST(L)-=e,#,oSELECT(S-MH)=(FIRST(M H)-)UFOLLOW(S)=(FIRST(M)UFIRST(H)-殳)UFOLLOW(S)=d,b,e,#,oSELECT(S-a)=aSELECT(H-LSo)=FIRST(LSo)=eSELECT(H-&)=FOLLOW(H)=f,#,o SELECT(K-dML)=dSELECT(K-)=FOLLOW(K)=e,#,oSELECT(L-eHf)=eSE
14、LECT(M-K)=(FIRST(K)焚)LFOLLOW(M)=d,e,#,oS E L E CT (M -b L M )=b 构 造 LL(1)分析表abedf0#s-a-M H-MH-M H-M H-M HHLSo-c-K-1-dM L-C-L-eH fM-bLM-K-K-K-K4.文法含有左公因式,变为S-C$b,aC-bA b C-aB aA-bAA b A-a A a S一否A一否A,一是B 一否C 一否D一否D,一是E一否F否A C$,a,b A9-C a,b B-a B BaB-b B9b$,a,b B-C a,b 5.v 程 序 S 语句表-A 语句-B 无条件语句-C 条件语
15、句-D如果语句)-E 如果子句-FS-begin A endS-begin A end begin A-BA-BAa,ifA-A;BA5-;B A;end B-CB-C a B-DB-DifC-aC-aaD-ED-E DifD-E else BD-else B else D?&;,end E-FCE-FCifF-if b thenF-if b thenif非终结符是否为空FIRST=begin FIRST(A)=FIRST(B)U FIRST(A)U =a,if,;,FIRST(V)=;,FIRST(B)=FIRST(C)U FIRST(D)=a,if FIRST(C)=aFIRST(D)=F
16、IRST(E)=ifFIRSR(D,)=else,&FIRST(E)=FIRST(F)=if FIRST(F)=ifFOLLOW(S)=#FOLLOW(A)=endFOLLOWCV)=end FOLLOW(B)=;,end FOLLOW(C)=;,end,else FOLLOW(D)=;,end FOLLOW(D9)=;,end FOLLOW(E)=else,;end)FOLLOW(F)=aSA A B C D D E Fif then else begin end a b;ifthenelsebeginendab9#s-begin A endA-BA9 BAA,-;BA9B-D-CC-aD-
17、ED9D5-else BD,-C-cE-FCF-if b then S A|B(2)A-aA|a(3)B-bB|b提 取(2),(3)左公因子 S-A|B(2)A-aA9(3)A|g(4)B-bB,B9-B|C2.(1)S-AB ABa|g B-Db|D(4)D-d|提 取(3)左公因子(1)S-AB(2)A-Ba|(3)B-DB(4)B,b D-d|C3.(l)S-aAaB IbAbB AS|db(3)B-bB|a4(1)S-i|(E)(2)E-E+S|E-S|S提 取(2)左公因子 S-i|(E)E-SE(3)E S E 1-S E”g5(1)S-SaA|bB(2)A-aB|c(3)B-B
18、b|d消 除(1)(3)直接左递归 S-bBS9SaA Sg A-aB|c(4)B-dB9(5)B,bB1gXI/lzXI/XI/1234(-ZIVz(v(1)M-MaH|H(2)H-b(M)|(M)|b消 除(1)直接左递归,提 取(2)左公因子M-HMM,aHM”H-bH91 (M)H9-(M)|C7.(1)1)A-baB2)A-3)B-Abb4)B-a将 1)、2)式代入3)式1)A-baB2)A-g3)B-baBbb4)B-bb5)B-a提取3)、4)式左公因子1)A-baB2)A-g3)BbB4)B,-aBbb|b5)B-a(3)1)S-Aa2)S-b3)A-SB4)B-ab将 3)
19、式代入1)式1)S-SBa2)S-b3)A-SB4)B-ab消 除 1)式直接左递归1)S-bS2)S,-BaS,|3)S-b4)A-SB5)B-ab删除多余产生式4)1)S-bS92)S,-BaS,|3)S-b4)B-ab(5)1)S-Ab2)S-Ba3)A-aA4)A-a5)B-a提取3)4)左公因子1)S-Ab2)S-Ba3)A aA4)A|g5)B-a将 3)代 入 1)5)代入21)S-aA9b2)S-aa3)A-aA94)A9-A|g5)B-a提 取 1)2)左公因子1)S aS2)S Ab|a3)A-aA94)A9-A|g5)B-a删除多余产生式5)1)S-aS92)S,Ab|a
20、3)AaA4)A,A|gA A S S将 3)代入4)1)S-aS2)S-A,b|a3)AaA4)A-aA|将 4)代入2)1)S-aS2)S,aA,b3)S9-a4)S,b5)A-aA6)A9-aA”C对 2)3)提取左公因子1)S-aS92)S S”3)S”一次b|C4)Sb5)A 4 a A 6)A5-aA”删除多余产生式5)1)S-aS92)S,aS”3)SAb|C4)Sb5)A-aA|第六章1S a I A I(T )T -T ,S|S解:(1)增 加 辅 助 产 生 式 S 9#S#求 F I R S T V T 集F I R S T V T (S )=#F I R S T V T
21、 (S)=a A(=a A (F I R S T V T (T)=,U F I R S T V T (S )=,a A(求 L A S T V T 集L A S T V T (S )=#L A S T V T (S)=a A)LASTVT(T)=,a A)(2)算符优先关系表aA()9#a A *(=9#=因为任意两终结符之间至多只有一种优先关系成立,所以是算符优先文法(3)1A()9#F 1 11 1 11g 111 1 11f22 1321g22 21 21f33 1331g44 41 21f33 1331g44 41 21(4)栈优先关系当前符号剩余输入串移进或规约#(a,a)#移进#(
22、a)#规约#(T 9a)#移进#(T,)#规约#(T,T*)#规约#(T=)#移进#(T)*#规约#T=#接受4.扩展后的文法S今#S#S-S;G S-G G-G(T)G-H H-a H(S)T 今 T+S T9S(1)FIRSTVT(S)=;U FIRSTVT(G)=;,a,()FIRSTVT(G)=(U FIRSTVT(H)=a,(FIRSTCT(H)=a,(FIRSTVT(T)=+U FIRSTVT(S)=+,;,a,()LASTVT(S)=;ULASTVT(G)=;,a,)LASTVT(G)=)U LASTVT(H)=a,)LASTVT(H)=a,)LASTVT(T)=+U LASTV
23、T(S)=+,;,a,)构造算符优先关系表9()a+#(*=*a*+#=因为任意两终结符之间至多只有一种优先关系成立,所以是算符优先文法(2)句型a(T+S);H;的短语有:a(T+S);H;(S)a(T+S);H a(T+S)a T+S(S)H直接短语有:a T+S H(S)句柄:a素短语:a T+S(S)最左素短语:a(3)分析 a;(a+a)分析 a;(a+a)栈优先关系当前符号剩余输入串移进或规约#(a+a)#规约#T(a+a)#移进#T;(a+a)#移进#T;(+a)#规约#T;(T+a)#移进#T;(T+)#规约#T;(T+T)#规约#T;(TL Z L )#移进#T;(T)#规约
24、#T;T#规约#T-#接受(4)栈优先关系当前符号剩余输入串移进或规约#(a+a)#移进#(+a)#规约#(T+a)#移进#(T+)#规约#(T+T)#规约#(T-)#移进#(T)#规约#T-#接受不能用最右推导推导出上面的两个句子。第七章1、已知文法:A -*a A d|a A b|&判断该文法是否是S L R (1)文法,若是构造相应分析表,并对输入串a b#给出分析过程。解:(0)A f A(1)A a A d(2)A f a A b(3)A f g构造该文法的活前缀D F A:由上图i构造SL1 0:A f AA f a A dA f a A bA f a文,b:A f a A dA
25、f a A bA f a A dA f a A bA 一,AI 3:A f a A dA a A b_d,a A b-I 4:A f a A d aR)3ibk:A -*U U 1 UA11A、a c cV小 -普R 33I i:A-*A F gyw(A)14R IR IR I5R 2R 2R 2输入串a b#的分析过程:步骤状态栈符号栈输入串A CT I O NG O T O10a b#S 220 2Uab#R 3330 23#a AbitS 540 235#a A b#R 2150 1能A#a c c3、考虑文法:S f A S|b A-S A|a(1)列出这个文法的所有L R (0)项目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 第二 课后 习题 答案
限制150内