1、编译原理第三版课后答案编译原理_第三版_课后答案编译原理课后题答案第二章P36-6(1)是09组成的数字串最左推导:N= ND= NDD= NDDD = DDDD = ODDD = O1DD= 012D= 0127N= ND 二 DD 二 3D二 34N= ND 二 NDD = DDD = 5DD = 56D二 568最右推导:N 二 ND 二 N7二 ND7二 N27二 ND27二 N127二 D127二 0127N = ND = N4= D4= 34N= ND 二 N8= ND8二 N68二 D68二 568P36-7G(S)O 1|3|5|7|9N 2|4|6|8|0D 、0|NS 0|
2、A0A AD|NP36-8文法:E T T E +T|E TT t F T* F|T/ FF (E)|i最左推导:E = E T= T T= F T = i T = i T * F = i F * F = i i * F = i i*iE = T= T* F 二 F * F = i* F 二 i *( E)二 i*( E T)二 i *( T T)二 i *( F T)=i *( i T)二 i*(i F)= i*( i i)最右推导:E= E T= E T*F= E T*i= E F*i= E i*i= T i*i= F i*i= i i*iE= T= F*T= F * F= F*( E)=
3、 F *( E T)= F *( E F)= F *( E i)=F*( T i)= F*( F i)= F*( i i)= i*(i i)/*ii+i+ii-i-iii+i*i*P36-9句子iiiei 有两个语法树:S二 iSeS二 iSei 二 iiSei = iiieiS= iS = iiSeS = iiSei = iiieiP36-10/*S TS |TT (S)|()*L1:S ACAr aAb | abC r cC | ;L2:S ABAaA| ;B r bBc|bcL3:S ABA: aAb | ;B = aBb | ;L4:S A| BA; 0A1| ;B- 1B0| A*/
4、第三章习题参考答案P64 - 71(01)*1011101确定化:01X01,2,30001,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,1011最小化:0,1,2,3,4,5,60,123,4,5。=135 0,1,2,3,4,51,2,4,60,1,2,3,4, 5,60,123,4。=1,3,50,1,23,4, 5,60,1,23 =1,3 0,1,2,3厂1,2,40,1,2,04, $,60,1 0 :0:确定化:01X,1,Y1,Y21,Y1,Y22r 1,Y0000给状态编号:010
5、12112213333第四章101110最小化:0,1,2,30,1。=1 0,1 22,3。=1,3 2,3h 二30,1,2,3011100P81 1(1)按照T,S的顺序消除左递归G (S)S af|仃)T STT ,ST | ;递归子程序:procedure S;beg inif sym=a or sym=Athe n abva neeelse if sym=(the n begi nadvance;T;if sym=) the n adva nee;else error;endelse errorend;procedure T;beg inS;end;procedure ;beg i
6、nif sym二,then begi nadvanee;S;endend;其中:sym:是输入串指针IP所指的符号advanee:是把IP调至下一个输入符号error:是出错诊察程序FIRST(S)二a,八,(FIRST(T)二a,八,(FIRST()=,FOLLOW(S)=),#FOLLOW(T)=)FOLLOW()=)预测分析表aA()J#SSt aSt aSt (T)T:Tt str tt sTt STT J sTJ ,ST是LL(1)文法P81 - 2文法:E TEE E pT FTT J T | ;F PFF ; *F | ;P (E)| a |b |A(1)FIRST(E)二(,a
7、,bFIRST(E)二+, FIRST(T)=(,a,b,AFIRST(T)=(,a,b,A, & FIRST(F)=(,a,b,AFIRST(F)=*, FIRST(P)=(,a,b,AFOLLOW(E)二#,)FOLLOW(E)二#,)FOLLOW(T)二+,),#FOLLOW(T)二+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(F)二(,a,b,+,),#FOLLOW(P)二*,(,a,b,+,),#考虑下列产生式E E| ;T T| ;F J *F | ;P (E)|A|a|bFIRST(+E)Q FIRST( )=+ A = FIRST(+E) A FOLLOW(
8、E)二+Q #,)= FIRST(T) A FIRST( )=(,a,b,A A = FIRST(T) A FOLLOW(T)=(,a,b,A A +,),#= FIRST(*F) A FIRST( )=* A = FIRST(*F) A FOLLOW(F)二* A (,a,b,A,+,),#= FIRST(E) A FIRST(a) A FIRST(b) A FIRST(A)= 所以,该文法式LL(1)文法.(3)+*()abA#EEt TEEt TEEt TEEt TE EE EE J名EJ sTTtTt FTt FT*Tt FTTT J ET J TT JTt tTt TTt TTt s
9、FFt PFFt PFFt PFFt PFFF J eFF J eF J gF J名F J 8F J EF J 8PPt (E)Pt aPt bPt aprocedure E;beg inif sym=( or sym=a or sym=b or sym=Athen begi n T; E endelse errorendprocedure E:beg inif sym=+then begi n adva nee; E endelse if sym) and sym# the n errorendprocedure T;beg inif sym=( or sym=a or sym=b or sym=Athen begi n F; T endelse errorendprocedure T:beg inif sym=( or sym=a or sym=b or sym=A the n Telse if sym=* the n errorendprocedure F;beg inif sym=( or sym=a or sym=b or sym=Athen begi n P; F endelse errorendprocedure F:be
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1