1、编译原理课后答案第二章P36-6(1)L ( G1) 是 09 组成的数字串(2)最左推导 :NNDNDDNDDDDDDD0DDD01DD012 D 0127NNDDD3D34NNDNDDDDD5DD56 D568最右推导 :NNDN 7ND 7N 27ND 27N 127D1270127NNDN 4D 434NNDN 8ND 8N 68D 68568P36-7G(S)O1|3|5|7|9N 2|4|6|8|O D 0|NS O|AO A AD|NP36-8文法:E T|E T|E TTF|T*F|T/F F ( E)|i最左推导 :EE TT TF T i Ti T * Fi F * Fi
2、i * F i i * iETT * FF * Fi * Fi *( E ) i *( E T )i *( T T )i *( F T )i *( iT )i *( iF )i *( ii )最右推导 :EE TE T*FE T * iE F * iE i * iT i * iF i * i i i * iETF * TF * FF*( E)F*(E T)F*(E F)F *( E i )F *( T i )F *( F i )F *( i i )i *( i i )语法树: /*EEEE+TE+TE-TE+TFTT*FE-TFTFiFFiTFiFiiiFiiii+i+ii-i-ii+i*i*
3、/P36-9句子 iiiei 有两个语法树:S iSeS iSei iiSei iiieiS iS iiSeS iiSei iiieiP36-10/*STS |TT(S) |()*/P36-11/*L1:SACAaAb | abCcC |L2:SABAaA |BbBc | bcL3:SABA aAb | B aBb |L4:SA | B A 0A1| B 1B0| A*/第三章习题参考答案P647(1)1(01|) * 101X Y01101X12345Y1确定化: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、,4,Y2,3,52,3,4,01023000110101564011 1最小化: 0,1,2,3,4,5, 6 0,1,2,3,4,5 01,3,50,1,2,3,4,5 112,4,6 0,1,2,3,4, 5, 6 0,1,2,3,4 01,3,5 0,1,2,3, 4, 5, 6 0,1,2,3 01,30,1,2,3 112,4 0,1,2,3 4,5,6 0,1 010,1 11,2 2,3 0 3 2,314 0, 1, 2,3, 4, 5, 6010 20 0 1 0011345011 1P648(1)(1 | 0)* 01(2)(1|2|3|4|5|6|7|8|9)(0|1|
5、2|3|4|5|6|7|8|9)*(0|5) |(0|5)(3)0*1(0 | 10*1) * |1* 0(0 |10* 1) *P6412(a)aa,b0 1a确定化:ab00,110,10,1110 给状态编号:ab012112203333aa01abbbb23a最小化: 0,1,2,3 0,1 a10,1 b 2 2,3 a 0,3 2,3 b3 0,1,2,3aabb012ab(b)bba023abaa bba514aa已经确定化了 , 进行最小化最小化: 0,1, 2, 3,4, 5 0,1 a1 0,1 b 2,4 2, 3,4,5 a 1, 3, 0, 5 2,3,4,5 b 2
6、, 3,4,5 2, 4 a1,0 2,4 b 3,5 3, 5 a 3,5 3,5 b 2,4 0,1,2, 4,3, 5 0,1 a1 0,1 b 2,4 2, 4 a1,0 2,4 b 3,5 3, 5 a 3,5 3,5 b 2,4b b a0 1 2a baP6414(1)01010(2):X(| )*010Y201X 1 Y0确定化:01X,1,Y1,Y21,Y1,Y221,Y给状态编号:01012112213333000110111230最小化: 0,1, 2, 3 0,1 01 0,1 1 2 2,3 01,3 2,31 3 0,1, 2, 3011101300第四章P811(
7、1)按照 T,S 的顺序消除左递归G (S)Sa | | (T )T STT ,ST|递归子程序: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; Tend;procedure T ;beginif sym=,then beginadvance;S; Tendend;其中 :sym: 是输入串指针 IP 所指的符号advance: 是把 IP 调至下一
8、个输入符号error: 是出错诊察程序(2)FIRST(S)=a,(FIRST(T)=a,(FIRST( T )=, FOLLOW(S)=),#FOLLOW(T)=)FOLLOW(T )=)预测分析表a ( ) , #S S a S S (T)T T ST T ST T STT T T ,ST是 LL(1) 文法P812文法:E TEE E |T FTTT |FPFF * F |P ( E) | a | b |(1)FIRST(E)=(,a,b,FIRST(E)=+, FIRST(T)=(,a,b,FIRST(T)=(,a,b, FIRST(F)=(,a,b,FIRST(F)=*, FIRST
9、(P)=(,a,b,FOLLOW(E)=#,)FOLLOW(E)=#,)FOLLOW(T)=+,),#FOLLOW(T)=+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(F)=(,a,b,+,),#FOLLOW(P)=*,(,a,b,+,),#(2)考虑下列产生式 :EE|T T|F * F |P ( E)| a|bFIRST(+E) FIRST( )=+ = FIRST(+E) FOLLOW(E)=+ #,)=FIRST(T)FIRST( )=(,a,b, = FIRST(T)FOLLOW(T)=(,a,b, +,),#=FIRST(*F) FIRST( )=* = FIR
10、ST(*F) FOLLOW(F)=* (,a,b,+,),#=FIRST(E) FIRST(a) FIRST(b) FIRST()=所以 , 该文法式 LL(1) 文法 .(3)+*()ab#EE TE E TE ETE ETE EEEEETT FTT FTTFTTFTTTTT TTT TT TT TFFPF PF F PF F PF F PFF F *F F F F F F FP ( E ) P a P b P (4)procedure E;beginif sym=( or sym=a or sym=b or sym=then begin T; E endelse errorendproce
11、dure E;beginif sym=+then begin advance; E endelse if sym) and sym# then errorendprocedure T;beginif sym=( or sym=a or sym=b or sym=then begin F; T endelse errorendprocedure T;beginif sym=( or sym=a or sym=b or sym=then Telse if sym=* then errorendprocedure F;beginif sym=( or sym=a or sym=b or sym=th
12、en begin P; F endelse errorendprocedure F;beginif sym=*then begin advance; F endendprocedure P;beginif sym=a or sym=b or sym=then advanceelse if sym=( thenbeginadvance; E;if sym=) then advanceelse errorendelse errorend;P813/*(1)是,满足三个条件。(2)不是,对于 A 不满足条件 3。(3)不是, A、B 均不满足条件 3。(4)是,满足三个条件。*/第五章P1331E
13、E T E T*F短语 : E+T*F, T*F,直接短语 : T*F句柄 : T*FP1332文法:Sa|( T ) T T, S|S(1)最左推导:S (T) (T,S)S (T,S) (S,S)( T , S), S, S), S)( a, a), , S), S)(S, S) (a, S) ( a,( T ) (a,( T , S)( T), S) ( T,S),S) ( T,S,S), S)( S, S), S, S), S) ( a, S), S, S), S)( a, a ), ,( T), S) ( a, a), ,( S),S)( a,( S,S) (a,( a , S) (
14、a ,( a, a)( S,S,S), S) ( T), S,S), S)( a ,a ), S, S), S)( a, a), ,( a), S)( a, a), ,( a), a)最右推导:SS(T ) (T , S) ( T,( T) ( T,( T, S) ( T,( T, a) (T ,( S, a) ( T,( a, a)( S,( a,a) (a,( a,a)(T , S) (T, a) ( S,a) ( T), a) ( T ,S), a) ( T ,( T), a) ( T ,( S), a)( T,( a), a) ( T ,S,( a), a) ( T, ,( a), a
15、) ( S, ,( a), a) ( T), ,( a), a)( T , S), ,( a), a) ( T, a), ,( a), a) ( S,a), ,(a), a) ( a,a), ,(a), a)(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),(
16、a),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#
17、(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(=,G6 是算符文法,并且是算符优先文法(3)优先函数a(),f44244g55523fffffa(),ggggga(),(4)栈输入
18、字符串动作#( a,(a,a) ) #预备#(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.SS1. SS2. SAS 3.SA S4.SAS 5.Sb6. Sb7.ASA8.AS A9.ASA10.Aa11. Aa(2)1S AS789a01011A
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1