关键词不能为空

当前您在: 主页 > 英语 >

编译原理_第三版_课后答案

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

-

2021年2月14日发(作者:transparent)


编译



原理



课后题答案




第二章



P36-6



(1)



L


(


G


1


)



0~9


组成的数字串



(2)



最左推导


:



N


?


ND


?


N DD


?


NDDD


?

DDDD


?


0


DDD


?


01


DD


?


012


D


?


0127


N


?


ND


?


DD


?


3


D

< p>
?


34


N


?


ND


?


NDD


?

< p>
DDD


?


5


DD


?


56


D


?

< p>
568



最右推导


:



N


?


ND


?


N


7


?


ND


7< /p>


?


N


27


?


ND


27


?


N


127


?


D


127


?


0127


N


?


ND


?


N


4


?


D


4


?


34


N


?


ND


?


N


8


?


ND


8


?


N

< p>
68


?


D


68

< p>
?


568



P36-7



G(S)



O


?


1


|


3


|< /p>


5


|


7


|


9


N


?


2

< p>
|


4


|


6


|


8


|


O

D


?


0


|


N


S


?


O


|< /p>


AO


A


?


AD< /p>


|


N



P36-8



文法:



E


?


T


|


E


?


T


|


E


?


T


T


?


F


|


T


*


F

< br>|


T


/


F



F


?


(


E


)|


i


最左推导


:



E


?


E


?


T


?


T


?


T


?


F


?


T


?


i


?


T


?


i

< br>?


T


*


F


?


i


?


F


*


F


?


i


?


i


*


F


?


i


?


i


*


i


E


?


T

< br>?


T


*


F


?


F


*


F


?


i


*


F


?


i


*(


E


)


?


i


*(


E


?


T


)


?


i


*(


T


?


T


)


?


i

*(


F


?


T


)


?


i


*(


i


?


T


)


?< /p>


i


*(


i


?


F


)


?


i


*(


i


?


i

< p>
)


最右推导


:




E


?


E


?


T


?


E


?


T


*


F


?


E


?


T

< br>*


i


?


E


?


F


*


i


?


E


?


i


*


i


?


T


?


i


*


i


?


F


?


i


*

< br>i


?


i


?


i


*


i


E


?


T


?


F


*


T


?


F


*


F


?


F


*(

< p>
E


)


?


F


*(


E


?


T

< br>)


?


F


*(

E


?


F


)


?


F


*(


E


?


i


)


?


F


*(


T


?


i


)


?


F


*(


F


?


i


)


?


F


*(


i


?


i


)


?

i


*(


i


?


i


)


语法树:


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




E


E


+


T

< p>
E


+


T


F


T


F


i


F

i


i


i+i+i


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



P36-9



句子


iiiei


有两个语法树:



S


S


?

< p>
?


iSeS


iS


?


?


iiSeS


iSei


?


?


iiSei


iiSei


?


?


iiiei


iii ei




P36-10



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



S


?


TS


|


T< /p>


T


?


(


S


)


|


(



)



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



P36-11



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



L1:



S


?


AC


A


?


aA b


|


ab



C


?


cC


|


?< /p>


L2:



E


E< /p>


+


T


T


T


*


F


F


F

< p>
i


i


i


i-i-i


E


E


-


E

< p>
-


T


T


F


F


i


i


i+i*i

< p>
T


F


i



S


?


AB


A

< br>?


aA


|


?

B


?


bBc


|

bc


L3:



< br>S


?


AB


A

?


aAb


|


?


B


?


aBb

|


?


L4:


S


?


A


|


B


A


?


0


A< /p>


1


|


?



B


?


1


B

< p>
0


|


A


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



第三章习题参考答案



P64



7



(1)




1


(


01


|< /p>


)


*


101



X



Y




0




1


?



?


1 0 1



X



1



2



3



4



5





1



确定化:




{X}



φ



{1,2,3}



{2,3}



{2,3,4}



{2,3,5}



{2,3,4,Y}



0



φ



φ



{2,3}



{2,3}



{2,3,5}



{2,3}



{2,3,5}



1



{1,2,3}



φ



{2,3,4}



{2,3,4}



{2,3,4}



{2,3,4,Y}



{2,3,4,}



Y




0




1 0



0



2



3




0 0 1 1 0



1



0 1



4



5



6



0



1



1 1



最小化:



{


0


,


1


,


2


,


3


,


4


,


5


},{


6


}


{


0


,


1


,


2


,


3


,


4

< br>,


5


}


0


?


{


1


,


3


,


5


}



{


0


,


1


,


2


,


3


,


4


,


5


}


1


?


{

< br>1


,


2


,


4


,


6


}


{


0


,


1


,


2


,


3


,


4


},{


5


},{


6


}


{


0


,


1


,


2


,


3


,


4

< br>}


?


{


1


,


3


,


5


}


0


{


0


,


1


,


2


,


3


},{


4


},{


5


},{


6


}



{


0


,


1


,


2


,


3


}


0


?

< br>{


1


,


3


}



{


0

,


1


,


2


,


3


}


1


?< /p>


{


1


,


2


,


4


}


{

< p>
0


,


1


},{

< p>
2


,


3


}{


4


},{


5


},{


6


}


{


0


,


1


}


?

< br>{


1


}



{


0


,


1

}


?


{


1


,


2


}


0


1< /p>


{


2


,


3


}


0


?


{

< p>
3


}



{


2


,


3


}


1


?


{


4

< br>}


{


0


},{

< br>1


},{


2


,

< br>3


},{


4


},{


5


},{


6


}


0




1



2



0




0 0 1 0



0 1



1



3



4



5



0



1



1 1




P64



8



(1)



(


1


|


0


)


*< /p>


01



(2)



(


1


|


2


|


3


|


4


|


5


|


6


|


7


|


8

< br>|


9


)(


0

|


1


|


2


|


3


|


4


|< /p>


5


|


6


|


7


|


8


|

< p>
9


)


*


(


0


|


5


)

|


(


0


|


5


)



(3)



0


*


1


(


0


|


10


*


1


)


*


|

< p>
1


*


0


(


0


|


10


*

< br>1


)


*



P64



12



(a)



a




a,b




0



a




1



确定化:




{0}



{0,1}



{1}



φ




给状态编号:




0



1



2



3



a



1



1



0



3



b



2



2



3



3



a



{0,1}



{0,1}



{0}



φ



b



{1}



{1}



φ



φ




a




a




0



1




a b b b




b



2



3




a




最小化:



{


0


,


1


},{


2


,


3


}


{< /p>


0


,


1


}


?


{


1


}

< p>


{


0


,


1


}


?


{


2


}


a


b

< br>{


2


,


3


}


?


{


0


,


3


}



{


2


,


3


}< /p>


?


{


3


}



a


b


{

< p>
0


,


1


},{

< p>
2


},{


3


}

< p>


a a




b b



1



2




0



a



b





(b)



b b a



2



3




0



a b



a



a b



b a



4



5



1



a a




已经确定化了

< br>,


进行最小化



最小化:



{


{


0


,


1


}< /p>


,


{


2


,


3


,


4


,


5


}


}


{


0


,


1


}

< br>a


?


{


1


}



{


0

< br>,


1


}


b


?


{


2


,


4


}


{


2


,


3


,


4


,


5


}


a


?


{


1


,


3

< br>,


0


,


5


}



{


2

< br>,


3


,


4


,


5


}


b


?


{


2


,


3


,


4


,


5


}


{


2


,


4


}


a


?

< br>{


1


,


0


}



{


2

,


4


}


b


?


{


3


,


5< /p>


}


{


3


,


5


}


a


?

< p>
{


3


,


5


}



{


3


,


5


}


b

< br>?


{


2


,


4


}


{{


0


,


1


},{


2


,


4


},{


3


,


5


}}


{


0


,


1


}


a


?


{


1


}



{


0


,


1


}


b


?


{


2


,


4


}


{


2


,

< br>4


}


a


?


{


1


,


0


}



{


2


,


4


}


b


?< /p>


{


3


,


5


}


{


3


,

< p>
5


}


a


?


{


3


,


5

}



{


3

< br>,


5


}


b


?


{


2


,


4


}




b b a



1



2




0



a b




a




P64



14



(1) 0



1




0



0




(2):





(

< p>
010


|


)



X



*


1



Y






2




0



1




?



?



1



X





Y



0




确定化:




{X,1,Y}



{1,Y}



{2}



φ



给状态编号:




0



1



2



3



0



1



1



1



3



1



2



2



3



3



0



{1,Y}



{1,Y}



{1,Y}



φ



1



{2}



{2}



φ



φ



0




0



1



0



1 0



1 1



1



2



3




0



最小化:



{


0


,


1


} ,{


2


,


3


}


{


0


,


1


}


0


?


{


1


}



{


0


,


1


}

< p>
1


?


{


2


}


{


2


,

3


}


0


?


{


1


,


3


}< /p>



{


2


,


3


}


1


?


{


3


}


{


0


,


1


},{


2


},{


3


}



0



1 1 1




1



3



0



0



0



第四章



P81



1



(1)


按照


T,S

< br>的顺序消除左递归



G


?


(


S


)


S

< p>
?


a


|^


|


(


T


)


< br>T


?


S


T


?


T


?


?


,


S


T


?


|


?


递归子程序:



procedure S;



begin




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





then abvance





else if sym='('






then begin







advance;T;







if sym=')' then advance;








else error;






end






else error



end;



procedure T;



begin




S;


T


?



end;



procedure


T


?


;



begin




if sym=','





then begin






advance;






S;


T


?





end



end;



其中


:



sy m:


是输入串指针


IP


所指的符号




advance:

是把


IP


调至下一个输入符号



error:


是出错诊察程序



(2)



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



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



FIRST(


T


?


)={,,


?


}



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



FOLLOW(T)={)}



FOL LOW(


T


?


)={)}



预测分析表




S



T



a



^



(



)





,





#






S


?


(


T


)



S


?


a



S


?


^



T


?


ST


?



T


?


ST


?



T


?


ST


?






T


?




LL(1)


文法




T


?


?


?



T


?


?


,


ST


?



P81



2



文法:



E


?


T


E


?


E


?


?


?


E


|


?


T


?


F


T


?


T

< br>?


?


T


|


?


F


?


P


F


?


F


?


?


*


F


?


|


?


P


?


(


E


)


|


a

< br>|


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,^,+,),#}



(2)



考虑下列产生式


:




E


?


?


?


E


|


?


T


?


?


T


|


?


F


?

< br>?


*


F


?


|


?


P


?


(


E


)|^|


a


|


b



FIRST(+E)

< p>


FIRST(


ε


)={ +}



{


ε


} =


φ



FIRST(+E)

< p>


FOLLOW(E')={+}



{#,)}=


φ



FIRS T(T)



FIRST(


ε

< p>
)={(,a,b,^}



{

ε


}=


φ



FIRST(T)



FOLLOW(T')={(,a,b, ^}



{+,),#}=


φ

< p>


FIRST(*F')



FIRST(


ε


)={*}



{


ε


}=


φ



FIRST(*F')


FOLLOW(F')={*}



{(,a,b,^,+, ),#}=


φ



FIRST((E))



FIRST(a)



FIRST(b)



FIRST(^)=


φ



所 以


,


该文法式


LL(1)


文法


.



(3)




E



E'



T



+




*






(



)



a



b



^



#



E


?


??


E




E


?


TE


'


E


?


TE


'

< p>
E


?


TE


'


E


?


TE


'












E


?


?


?



E


?


?


?





T


?


F


T


?


T


?


F


T


?


T


?


F


T

< br>?



T


?


F


T


?



T'



F



F'



P







T


?


?


?






T


?


?


T

< br>


T


?


?


?



T


?


?


T



T


?


?


T



T


?


?


T



T


?


?


?

< br>


F


?


P


F


?



F


?


P


F


?


F


?


P


F


?


F


?


P


F


?




< br>F


?


?


?



F


?


?


*


F


?



F


?


?


?



F


?


?


?



F


?


?

< br>?



F


?


?


?



F


?


?


?



F


?


?


?



P


?


(


E


)


P


?


a

< br>


P


?


b



P


?


^








(4)



procedure E;



begin




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




then begin T; E' end




else error



end



procedure E';



begin




if sym='+'




then begin advance; E end




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



end



procedure T;



begin




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




then begin F; T' end




else error



end



procedure T';



begin




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




then T




else if sym='*' then error



end



procedure F;



begin




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




then begin P; F' end




else error



end



procedure F';



begin




if sym='*'




then begin advance; F' end



end



procedure P;



begin




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




then advance




else if sym='(' then





begin






advance; E;






if sym=')' then advance







else error





end





else error



end;



P81



3



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



(1)



是,满足三个条件。



(2)



不是,对于

< br>A


不满足条件


3




(3)



不是,


A



B


均不满足条件< /p>


3




(4)



是,满足三个条件。



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



第五章



P133



1



E


?


E


?


T


?


E


?


T


*


F



短语


: E+T*F, T*F,



直接短语


: T*F



句柄


: T*F



P133



2



文法:



S


?


a


|^|(


T


)


T


?


T


,< /p>


S


|


S



(1)



最左推导


:



S


?


(


T


)< /p>


?


(


T


,


S


)


?


(

< p>
S


,


S


)


?


(


a


,

S


)


?


(


a


,(


T


))


?


(


a


,(


T


,


S


))


?< /p>


(


a


,(


S


,


S


))


?


(


a


,(


a


,


S


))


?

< p>
(


a


,(


a


,


a


))


S


?


(


T


,

S


)


?


(


S


,


S


)


?< /p>


((


T


),


S< /p>


)


?


((


T


,


S


),


S


)


?


((


T


,


S


,


S


),


S


)


?


((


S


,


S

< br>,


S


),


S

)


?


(((


T

),


S


,


S


),


S


)


?


(((


T


,


S


),


S


,


S


) ),


S


)


?


( ((


S


,


S


) ,


S


,


S


),


S


)


?


(((


a


,


S


),< /p>


S


,


S


),


S


)


?


(((


a


,


a


),


S


,


S


),


S


)


?


(((


a


,


a


),^


,


S


),


S

< p>
)


?


(((


a

< p>
,


a


),^


,(


T


)),


S


)


?


(((


a


,


a


),^


,(


S


)),


S


)


?


(((


a


,


a


),^


,(


a


)),


S


)


?


(((


a


,


a


),^


,(


a


)),


a


)



最右推导


:



S


?


(


T


)< /p>


?


(


T


,


S


)


?


(

< p>
T


,(


T


))

< p>
?


(


T


,(


T


,


S


))


?


(


T


,(

< br>T


,


a


))

?


(


T


,(


S


,


a


))


?


(


T


,(


a


,


a


))


?< /p>


(


S


,(


a


,


a


))


?


(


a


,(


a


,


a


))


S

< p>
?


(


T


,


S


)


?


(

T


,


a


)


?


(


S


,


a< /p>


)


?


((


T


),


a


)


?


((


T


,


S


),


a


)


?

< p>
((


T


,(


T

< p>
)),


a


)


?

< p>
((


T


,(


S

< p>
)),


a


)


?

< p>
((


T


,(


a

< p>
)),


a


)


?

< p>
((


T


,


S


,(


a


)),


a

< p>
)


?


((


T


,^


,(


a


)),


a


)


?


((

< p>
S


,^


,(


a

< p>
)),


a


)


?

< p>
(((


T


),^


,(


a


)),


a


)


?


(((


T


,


S


),^


,(


a< /p>


)),


a


)


?< /p>


(((


T


,


a< /p>


),^


,(


a


) ),


a


)


?


( ((


S


,


a


) ,^


,(


a


)),

a


)


?


(((

a


,


a


),^

,(


a


)),


a

< br>)



(2)


< br>(((


a


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

< br>


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



(((T,


a


),^,(a)),a)



(((


T,S


),^,( a)),a)



((


(T)

< p>
,^,(a)),a)



((

S


,^,(a)),a)



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



((< /p>


T,S


,(a)),a)



((T,(


a


)),a)



((T,(


S


)),a)



((T,(


T


)),a)



((


T,S


),a)



(


(T)

< br>,a)



(


S


,a)



(


T,S


)



(T)



S



“移进


-


归约”过程:



步骤






输入串




动作



0


#



(((


a


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


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


#((T,



(a)),a)#


#((T,(



a)),a)#


#((T,(a


)),a)#



#((T,(S


)),a)#



#((T,(T


)),a)#



#((T,(T)



),a)#


#((T,S



),a)#



#((T



),a)#



#((T)



,a)#



#(S


,a)#





#(T


,a)#





#(T,



a)#




#(T,a



)#





#(T,S



)#





#(T


)#





#(T)



#





#S



#

























P133



3



(1)



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



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



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



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



(2)




a



^



(



)



,



a





<




<



^





<




<



(





<




<



)



>



>



=



>



>



,



>



>



<



>



>



G


6


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



(3)


优先函数





f



g






f


a



f


^




f



(






f




f



)


,


a



4



5



^



4



5



(



2



5



)



4



2



,



4



3


-


-


-


-


-


-


-


-



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

编译原理_第三版_课后答案的相关文章