关键词不能为空

当前您在: 主页 > 英语 >

陈火旺编译原理(第三版)课后习题答案

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-14 02:51
tags:

-

2021年2月14日发(作者:安全理事会)



第二章



P36-6





L(G)



o~9


组成的数字串





最左推导




N= ND= NDD= NDDD= DDDD= ODDD= 01DD= 012D= 0127



N=


ND= DD= 3D= 34



N=


ND= NDD= DDD= 5DD = 56D= 568



最右推导


:



N= ND= N7= ND7= N27= ND 27= N127= D127= 0127



N=


ND= N 4= D4= 34



N= ND= N8= ND8= N 68= D68= 568



P36-7



G(S)



O > 1|3|5|7|9



N > 2


∣< /p>


4



6



8



O



D > 0|N



S > OlAo



A





AD |N



P36-8



文法:



E


τ


T E +T|E



T



T


T


F T* F|T/ F



F > (E)|i



最左推导


:



E= E T= T T= F T= i T= i T* F= i F*F = i i*F= i i*i



E=T=T* F




F * F




i * F = i*( E)= i *( E T)




i *( T T)




i *( F T)



=i*


(



i τ)= 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*i E=T= F*T = F * F=




F*( E)= F *( E T)= F *( E F)= F *( E i)



=F*( T i)= F*( F i)= F*( i i)= i*(i i)



^


语法树


.


/********************************




E














T


F i









i






i+i+i



***********


**


P36-9

****




/



句子


iiiei


有两个语法树:



S= iSeS= iSei = iiSei = iiiei


S= iS= iiSeS= iiSei = iiiei



P36-10



/**************



S > TS |T



T > (S)



()



***************/



P36-11



/***************



L1:



S > AC



A



aAb |ab


C




CC |




L2:



S > AB



A





aA|




B




bBc|bc





E



F F



i



i-


i-


i



E



T


F i



i



i+i*i





L3:





S > AB





Ar aAb



|




L4


B > aBb|



:




S > A| B





A











0A1






**********


**



B > 1B0| A


***



/



第三章习题参考答案



P64



7



1(01)


*


101


0


确定化


:




0



{X}



1



{1,2,3}




{1,2,3}



{2,3}



{2,3,4}



{2,3,5}



{2,3,4,Y}




φ



φ



{2,3}



{2,3}



{2,3,5}



{2,3}



{2,3,5}



φ



{2,3,4}



{2,3,4}



{2,3,4}



{2,3,4,Y}



{2,3,4,}



φ


最小化


:


2


3


0


4




{0,1,2,3,4,5},{6}



{0,1,2,3,4,5}


°


={135}


{O,123,4,5}


1



={1,2,4Q



{0,1,2,3,4},{ 5},{6}



{ 0,1,2,3,4}


0



√1,3,5}



{0,1,23,{4},{ 5},{6}



{0,1,23


°


={1,3}


{0,1,2,3}


1



={1,2,4}



{0,1},{23{4},{ f},{6}



{0,1}°={1} {0,1}


1


={1,2}



{2,3}


0


={3


{23


1



={4}



{0},{1},{2,3},{ 4},{ 5},{ 6}




P64- 8





(1


∣< /p>


0)


*


01





(1


∣< /p>


2



3



4



5


< p>
6



7



8



9)(0



1



2


< br>3



4



5



6



7



8



9)< /p>


*


(0



5)< /p>



(0



5


)





0


*


1(0



10


*


1)


*



1


*


0(0



10


*


1)


*



P64- 12







a



{0}




b



{1}



{0,1}




{0,1}



{1}



{0,1}



{0}



{1}



φ








φ



φ



φ




给状态编号


:








0




1




2





3






a








0





a



b



b






b




2





a






最小化:





{0,1},{ 2,3}




{0,1}


a


={1} {0,1}


b


={2}



{2,3}


{2,3}


b


={3}



a


={0,3}




{0,1},{ 2},{ 3}





























a



1



1



0



3



b



2



2



3



3



已经确定化了



进行最小化





最小化


:



{{O,1}, {2,3,4,5}}



{0,1}


a


={1}

< p>
{0,



={2,4}



{2,3,4,5}^ {2,3,4,5}



{2,3,4,5}


a


={1, 3,0,5}


{2,4}


a


={1,0}


{3,5}


a


={3,5}


{2,4}


b


={3,5}



{3,5}


b


={2,4}



{{0,1},{ 2,4},{ 3,5}}



{0,1}


b


={2,4}


{0,1}


a


H1}



{2,4}


a


={1,0}



{3,5}


a


={3,5}



{2,4



={3,5


{3,5}


b


={2,4}



0


0



1



{2}



确定化


:





{X,1,Y}




{1,Y}





{1,Y}



{2}



{1,Y}



{1,Y}



{2}



φ


φ


给状态编号


:







φ




φ



1



2



2



3



3



0



0



1



2



3



1



1



1



3






最小化:



{0,1},{2,3



{0,1}


o


√1}



{0,1}


ι


={2}



{2,3}o={1,3}


{0,1},{2},{3}



{2,3}^{3}




P81


-


1



(1)


按照


τ,s

< br>的顺序消除左递归



G(S)



S > a



^





)



T > ST



TrST |




递归子程序:



ProCedUre S;



begin



if sym='a' or sym=' ^'



the n abva nce





else if sym='('



the n begi n



advance;T;



if sym=')' the n adva nce; else error;



end



else error



en d;



PrOCedUre T;



begin



S;


T



en d;



PrOCedUre


T


;



begin



if sym=','



the n begi n



advance;



S;


T



end



en d;



其中




Sym:


是输入串指针


IP

< p>
所指的符号


advance:


是把


IP


调至下一个输入符号


error:


是出错诊察程序





FlRST(S)={a,^,(}



FIRST(T)={a,^,(}



FIRST(T )={,, J



FoLLoW(S)={),,,#}



FoLLoW(T)={)}



FOLLOW


T


)={)}



预测分析表





a



S



T



T





LL(1)


文法



H



^



(



)









#



S


T


a



Sτ^



:


TT ST



H


:


TT ST





ST (T)



TT ST




TJ




T


'T


,ST



P81


-


2



文法


:





E > TE



E^


E |



T > FT



T



T I



F


-



PF



F


> *F I




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(P)={(,a,b,^}



FoLLoW(E)={#,)}



FoLLoW(E')={#,)}



FOLLOW(T)={+,),#}



FOLLOW(T')={+,),#}



FOLLOW(F)={(,a,b,^,+,),*}



FOLLOW(F')={(,a,b,^,+,),*}



FOLLOW(P)={*,(,a,b,^,+,),*}





考虑下列产生式




E



E|




T


J


T| :



F


J


*F | :



P > (E)|


A


|a|b



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)


文法


.






+





*



(




)



a



b



^




#



E




Eτ TE'



E


τ


TE'



Eτ TE'



Eτ TE '









E'



T



E


J+


E





EJ


S



EJ


8



T


T


FT




H



T


T


FT



T


JE




H


TT FT



T


J


T



H


T


T


FT



T


J


T




H




T'




T


JE




T


J


T



T


J


T



TJ


J



F



FT Pi



FTPL



FTPL



FT PF*




F'



F



*F


'



:


F


JE



FJ


S



F


Jg



P





PT (E)




PT a





ProCedUre E;




begin



if sym='(' or sym='a' or sym='b' or sym=' ^' the n beg in T; E' end else error


end



PrOCedUre E';



begin



if sym='+'



the n beg in adva nce; E end



else if sym<>')' and sym<>'#' then error end



PrOCedUre T;



begin



if sym='(' or sym='a' or sym='b' or sym=' ^' the n beg in F; T' end else error


end



PrOCedUre T';



begin



if sym='(' or sym='a' or sym='b' or sym=' ^' the n T



else if sym='*' then error



end



PrOCedUre F;



begin



if sym='(' or sym='a' or sym='b' or sym=' ^' the n beg in P; F' end else error


end



PrOCedUre F';



begin



if sym='*'



the n beg in adva nce; F' end



end



PrOCedUre P;



begin



if sym='a' or sym='b' or sym='^'



the n adva nce



else if sym='(' the n




FJ


S



PT b



FJ




FJ


S



P


T


^








begin



advance; E;



if sym=')' the n adva nce



else error



end



else error



en d;



P81


-


3



/***************



(1)


是,满足三个条件。



(2)


不是,对于


A


不满足条件


3




(3)


不是,


A


B


均不满足条件


3




(4)


是,满足三个条件。



***************/



第五章



P133- 1



E= E T=E T* F



短语



E+T*F, T*F,



直接短语



T*F



句柄


:T*F



P133-2



文法:



S > a

< br>∣


^



(T)

< br>


T > T,S|S



(1)



最左推导


:



S= (T)= (T,S)= (S,S)= (a,S)= (a,(T))= (a,(T,S))= (a,(S,S))= (a,(a,S))= (a,(a,a))



S= (T,S) = (S,S) = ((T), S)= ((T ,S), S)= ((T, S, S), S) = ((S, S, S), 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),^ ,S),S)= (((a,a),^ ,(T)), S)= (((a,a),^ ,(S)), S)= (((a,a),^ ,(a)), S)



=(((a,a),^ ,(a)), a)



最右推导


:



S= (T)= (T,S)



(


T,(T))



(T


l


(T


l


S)^ (T


l


(T


l


a)^ (T


l


(S


l


a)^ (T,(a,a))



=


(SI(aI a)


^


= (a,( aIa))





S= (TIS)= (TIa)= (SIa)= ((T)Ia)= ((TIS)Ia)= ((TI(T))Ia)= ((TI(S)), a)



=((T,(a)),a)= ((T,S,(a)), a)



(


(T,^ ,(a)), a)



(


(S,^ ,(a)), a)=


(((T),^ ,(a)),a) =(((T,S)l^ ,(a)),a)= (((T,a),^ ,(a)),a)= ((( S,a),^ ,(a)),


a)= (((a,a),^ ,(a)), a)




(((a,a),^,(a)),a)



(((Sm),^,(a)),a)



(((T, a),^,(a)),a)



(((TS),^,(a)),a)



(((TL,^,(a)),a)



((S,^,(a)),a) ((T,^,(a)),a)



((TS,(a)),a)



((T,( a)),a)



((T,( S)),a)



((T,( T)),a)



((TS),a)



((ILa)



(S,a)



(LS)



(TL



S






输入串



动作



0




#



((( a,a),^,(a)),a)


1



#(



#



((a,a),^,(a)),a)#



2



#((



(a,a),^,(a)),a)#



3



#(((



a,a),^,


4



#(((a



(a)),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



#((T,(a



21



#((T,(S



22



#((T,(T



23



#((T,(T)



24



#((T,S



25




#((T



)),a)#



)),a)#



)),a)#



),a)#



),a)#



),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



#







P133-3



(1)



FlRSTVT(S)={a,^,(} FlRSTVT(T)={,,a,^,(} LASTVT(S)={a,^,)} LASTVT(T)={,,a,^,)}



a



^



(



)



5



a






>



>



^






>



>



(



V



V



V



=



V



)






>



>



5



V



V



V



>



>



G



6


是算符文法,并且是算符优先文法




(3)


优先函数




a



^



(



)



5



f



4



4



2



4



4




g



5



5



5



2



3






(4)





输入字符串



动作



#



(a,(a,a) ) #



预备



#(



a, (a,a))#





#(a



,(a,a))#





#(t





,(a,a))#









# (t,



# (t,(



# ( t, ( a



# ( t, ( t



# ( t, ( t,



# (t, (t,a



# (t, (t,s



# ( t, ( t



# ( t, ( t )



# (t,s



# (t



# (t


# S



SUCCeSS




)



(a,a) ) #



a,a )) #



,a )) #



,a )) #



a)) #



))#



))#



))#



)#



)#



)#



#



#





























P134-5



(1)



O.


S


r


S


1.


S


r


S ■



4. Sr


AS


' 5. Sr


b


8.


A-


?


2.


S ' AS


3. Sr


A S



6. S


r


b ■



7. Ar


SA



?


S A


9. Ar


SA ■


10. Ar


a


11. Ar


a ■







确定化


:




{0,2,5,7,10}



{1,2,5,7,8,10



S



{1,2,5,7,8,10



}



A



{2,3,5,7,10}



{2,3,5,7,9,10



a



{11}



{11}



b



{6}






{2,5,7,8,10}




-


-


-


-


-


-


-


-



本文更新与2021-02-14 02:51,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/654239.html

陈火旺编译原理(第三版)课后习题答案的相关文章