编译原理习题课.ppt





《编译原理习题课.ppt》由会员分享,可在线阅读,更多相关《编译原理习题课.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、习题课令文法GE为:ETE+TE-T TFT*FT/F F(E)i证明E+T*F是它的句型,指出这个句型的所有短语、直接短语和句柄EE+TE+T*F短语:E+T*F和T*F直接短语:T*F句柄:T*FEE+TT*F一个上下文无关文法生成的句子abbaa的推导树如图。(1)给出该句子的相应的最左推导和最右推导(2)该文法的产生式集合P可能有哪些元素?(3)找出该句子的所有的短语、简单短语、句柄。SABSaBSaSBBS aBBS abBSabbSabbAaabbaa最左推导最右推导略产生式集合:SABSBSBBSAaSBbAa短语、句柄SABSaSBBAabba习题解答7给文法GS:SaA|bQ
2、AaA|bB|bBbD|aQQaQ|bD|bDbB|aAE EaB|bFaB|bFF FbD|aE|bbD|aE|bl构造相应的最小的DFA。l由于从S出发任何输入串都不能到达状态E和F,所以,状态E,F为多余的状态,不予考虑。aZSADQBbbbababbbaa简化产生式后生成的NFAIIa =-closure(MoveTo(I,a)Ib =-closure(MoveTo(I,b)1 1S2 2A3Q2 2A2 2A4B,Z3Q3Q5D,Z4B,Z3Q6D5D,Z2A7B6 6D2 2A7B7B3Q6Dl因为4,5状态包含Z,所以都是终态,1,2,3,6,7都是非终态;l1态输入b后为3,是
3、非终态;2和3输入b后为4和5是终态,所以1和2,3是不同的状态;l2和3是相同等价状态;4和5是等价状态;6何是等价状态;l所以,最后剩下:1,2,4,6四个状态.a62baa1babb4最小化的DFA124376abbaa5babababba8.给出下述文法所对应的正规式给出下述文法所对应的正规式lS0A|1BlA1S|1lB0S|0l将 A1S|1 和 B0S|0 分别代入 S0A|1B 得:nS=01S|01nS=10S|10l得产生式:S=01S|10S|01|10 化简得:lS=(01|10)S|(01|10)lS=(01|10)*(01|10)得正规式:l(01|10)*(01|
4、10)9.9.将图将图4.184.18的的DFADFA最小化,并用正规式描述它所识别的语言:最小化,并用正规式描述它所识别的语言:a72bcbdb134c6aabbd5bl因为6,7是DFA的终态,其他是非终态,可将状态集分成两个子集:P1=1,2,3,4,5,P2=6,7。l由于F(6,b)=F(7,b)=6,而6,7又没有其他输入,所以6,7等价。l由于F(3,c)=F(4,c)=3,F(3,d)=F(4,d)=5,F(3,b)=6,F(4,b)=7,而6,7等价,所以3,4等价。l由于F(1,b)=F(2,b)=2,F(1,a)=3,F(2,a)=4,而3,4等价,所以1,2等价。l由于
5、状态5没有输入字符b,所以与1,2,3,4都不等价。l综上所述,上图DFA的状态可最细分解为:P=1,2,3,4,5,6,7。abb13c6bd5a最小化后的DFA该DFA用正规式表示为:b*a(c|da)*bb*习题解答习题解答2对下面的文法G:ETEE+E|TFTTT|FPFF*F|P(E)|a|b|l计算这个文法的每个非终结符的FIRST集和FOLLOW集。l证明这个方法是LL(1)的。l构造它的预测分析表。1.S为文法开始符号,#一定是FOLLOW(S)元素2.设A B 是一个产生式,则是一个产生式,则First()的非空元素的非空元素属于属于FOLLOW(B)如果如果*,则,则FOL
6、LOW(A)的元素就要加入到)的元素就要加入到FOLLOW(B)中,因为:)中,因为:D 1A 1A B 两个产生式,在推导过程中,可能会出现这样的句型两个产生式,在推导过程中,可能会出现这样的句型S*1A 1 *1 B 1*1 B 1 计算每个非终结符的FIRST和FOLLOW集合非终结符FIRST集合FOLLOW集合E(,a,b,),#E+,),#T(,a,b,+,),#T(,a,b,+,),#F(,a,b,(,a,b,+,),#F*,(,a,b,+,),#P(,a,b,*,(,a,b,+,),#计算每个非终结符的FIRST集合lFIRST(E)=FIRST(T)=FIRST(F)=FIR
7、ST(P)=(,a,b,;lFIRST(E)=+,lFIRST(T)=FIRST(F)=FIRST(P)=(,a,b,;lFIRST(T)=FIRST(T)=(,a,b,;lFIRST(F)=FIRST(P)=(,a,b,;lFIRST(F)=FIRST(P)=*,;lFIRST(P)=(,a,b,;计算每个非终结符的FOLLOW集合lFOLLOW(E)=),#;lFOLLOW(E)=FOLLOW(E)=),#;lFOLLOW(T)=FIRST(E)FOLLOW(E)=+,),#;/不包含lFOLLOW(T)=FOLLOW(T)=FIRST(E)FOLLOW(E)=+,),#;lFOLLOW(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 习题

限制150内