编译原理习题与答案ppt课件.ppt
《编译原理习题与答案ppt课件.ppt》由会员分享,可在线阅读,更多相关《编译原理习题与答案ppt课件.ppt(59页珍藏版)》请在三一办公上搜索。
1、第二章,2.2 设有文法GN:N-D | NDD-0|1|9(1) GN定义的语言是什么?(2) 请给出句子0123的最左推导和最右推导。,N ,ND,NDD,NDDD,DDDD,0DDD,01DD,012D,0123,N ,ND,N3,ND3,N23,ND23,N123,D123,0123,2.5 证明下面的文法是二义性的。SiSeS | iS | i答:对句子iiiei对应两棵不同的语法树,第二章,S,S,2.9 设有文法GT: TT*F|FF FP|PP(T)|i 分析句型T*P (T*F)的短语、直接短语和句柄答:句型T*P (T*F)的语法树:,T,五棵子树对应五个短语T*P (T*
2、F), P (T*F),P, (T*F), T*F,两层子树(简单子树)的末端结点构成直接短语 两棵两层子树对应两个直接短语: P , T*F位于最左边的两层子树的末端结点构成句柄: P,第二章,第三章,3.1 构造正规式1(0|1)*101相应的NFA,第三章,3.1 构造正规式1(0|1)*101相应的NFA,(0|1)*,第三章,3.5 给出下述文法所对应的正规式。G:SaA AbA | aB | b B aA解:先由产生式得:B=aA将B代入A中得:A=bA|aaA|b =(b|aa)A|b利用规则(A-xA|y)得:A= (b|aa) * b 将A代入S中得:S=a (b|aa) *
3、 b即为所求正规式,3.4 给出文法GS,构造相应最小的DFA。G:SaS | bA | b AaS解:由文法到NFA的转换有两种方法: 由文法到正规式,再由正规式到NFA先由产生式得:A = aS将A代入S中得:S = aS|bA|b = aS|baS|b = (a|ba)S|b利用规则(A-xA|y)得:S= (a|ba)*b 文法G对应的正规式为(a|ba)*b ,其对应的NFA的状态转换图为:,第三章,3.4 给出文法GS,构造相应最小的DFA。G:SaS | bA | b AaS解: 由文法直接到NFA文法对应的有自动M=(S,A, T, a,b, f, S, T)其对应的状态转换图
4、为:,第三章,正规式:(a|ba)*b,第三章,将NFA确定化为DFA如右图所示最小化:此状态图已经为最简了。,S,S,A,T,A,T,S,Ib,Ia,I,0,1,0,1,0,-,第三章,1.指出与正规式匹配的串。a) (ab|b)*c 与后面的那些串匹配?,ababbc,abab,c,babc,aaabc,b) ab*c*(a|b)c 与后面的那些串匹配?,acac,acbbc,abbcac,abc,acc,c) (a|b)aa*(ba)* 与后面的那些串匹配?,ba,bba,baa,aa,ababa,第三章,2. 为下边所描述的串写正规式,字母表是 0, 1.a) 以01 结尾的所有串b)
5、 只包含一个0的所有串 c) 包含偶数个1但不含0的所有串d) 包含偶数个1且含任意数目0的所有串e) 包含01子串的所有串f) 不包含01子串的所有串,(0|1)*01,1*01*,(11)*,(0*10*10*)*,(0|1)*01(0|1)*,1*0*,第三章,3. 请描述下面正规式定义的串. 字母表S = x, y。a) x(x|y)*x 必须以 x 开头和x结尾的串 b) x*(yx+)*x* 每个 y 至少有一个 x 跟在后边的串 c) (x|y)*(xx|yy) (x|y)* 所有含两个相继的x或两个相继的y的串,第三章,4.指出哪些串是自动机可接受的xy xyxxy yyyx
6、xyyxyxyxxy,第三章,5.将下图所示的非确定有限自动机(NFA)变换成等价的确定有限自动机(DFA)。,第三章,解:用子集法将NFA确定化,如下图所示。,X,1,3,2,3,Y,3,Y,1,3,4,3,2,3,4,Y,2,3,Y,2,3,Y,2,3,Y,3,4,3,Y,3,4,Y,3,4,3,4,2,3,4,Y,2,3,4,Y,2,3,4,Y,2,3,4,Y,3,4,Y,3,4,Y,上图所对应的DFA如下所示。,第三章,对上图的DFA进行最小化。首先将状态分为非终态集和终态集两部分:0,1,2,5和3,4,6,7。由终态集可知,对于状态3、6、7,无论输入字符是a还是b的下一状态均为终
7、态集,而状态4在输入字符b的下一状态落入非终态集,故将其化为分0,1,2,5, 4, 3,6,7,第三章,第三章,对于非终态集,在输入字符a、b后按其下一状态落入的状态集不同而最终划分为0, 1, 2, 5, 4, 3,6,7按顺序重新命名为0、1、2、3、4、5,得到最简DFA如下图所示。,0,1,2,5, 4, 3,6,7,6.设有L(G)=a2n+1b2ma2p+1|n0,p0,m1。(1) 给出描述该语言的正规表达式;(2) 构造识别该语言的确定有限自动机(可直接用状态图形式给出)。解:(1) 该语言对应的正规式为a(aa)*bb(bb)*a(aa)*。(2) a(aa)*bb(bb)
8、*a(aa)*正规表达式对应的NFA如下图所示。,第三章,第三章,正规表达式:a(aa)*bb(bb)*a(aa)*,用子集法将上图确定化,如图所示。,X,1,2,1,1,2,3,4,5,6,Y,Y,3,4,5,4,Y,6,重新命名后的状态转换矩阵可化简为(可由最小化方法得到)X,2 1 3,5 46 Y按顺序重新命名为0、1、2、3、4、5后得到最简的DFA,如下图所示。,第三章,a(aa)*bb(bb)*a(aa)*,7.有一台自动售货机,接收1分和2分硬币,出售3分钱一块的硬糖。顾客每次向机器中投放3分的硬币,便可得到一块糖(注意:只给一块并且不找钱)。(1) 写出售货机售糖的正规表达式
9、;(2) 构造识别上述正规式的最简DFA。解:(1) 设a=1,b=2,则售货机售糖的正规表达式为a (b|a(a|b)|b(a|b)。(2) 画出与正规表达式a(b|a(a|b)|b(a|b)对应的NFA,如图所示。,第三章,第三章,正规表达式:a(b|a(a|b)|b(a|b),第三章,用子集法将NFA确定化。,Y,3,Y,Y,2,Y,Y,1,3,Y,X,1,2,由转换矩阵可看出,非终态2和非终态3面对输入符号a或b的下一状态相同,故合并为一个状态即最简状态0、1、2,3、4。按顺序重新命名为0、1、2、3,则得到最简DFA,如下图所示。,第三章,第三章,第四章,作业4.3 设有文法GS:
10、SA AB|AiBBC|B+C C)A*|( 1)将文法GS改写为LL(1)文法。2)求经改写后的文法的每个非终结符的FIRST集和FOLLOW集。3)构造相应的预测分析表。,第四章,1)将文法GS改写为LL(1)文法。文法GS为左递归文法,削去文法左递归后的文法为:SAABAA iBA|BCBB +CB|C)A*|(,SA AB|AiBBC|B+C C)A*|(,第四章,1)将文法GS改写为LL(1)文法。FIRST(C)=(,) FIRST(B)=+, FIRST(B)=(,) FIRST(A)=i, FIRST(A)=(,) FIRST(S)=(,)FOLLOW(S)=$ FOLLOW(
11、A)=$,*FOLLOW(A)=$,* FOLLOW(B)=i,$,*FOLLOW(B)=i,$,* FOLLOW(C)=+,i,$,*,SA ABA A iBA|BCB B +CB| C)A*|(,第四章,SELECT(SA) =FIRST(A)=(,) SELECT(ABA)=(,) SELECT(AiBA) =iSELECT(A)= FOLLOW(A)= $,*SELECT(BCB)=(,)SELECT(B +CB) =+ SELECT(B)= i, $,*SELECT(C)A*)=) SELECT(C( )= ( 因为同一非终结符的不同产生式的Select集交集为空,所以改写后的文法是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 习题 答案 ppt 课件

链接地址:https://www.31ppt.com/p-1933973.html