欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    王汝传编译原理习题答案.docx

    • 资源ID:12929066       资源大小:268.82KB        全文页数:59页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    王汝传编译原理习题答案.docx

    1、王汝传编译原理习题答案编译原理习题答案:第一次:P142、何谓源程序、目标程序、翻译程序、汇编程序、编译程序和解释程序?它们之间可能有何种关系?答:被翻译的程序称为源程序;翻译出来的程序称为目标程序或目标代码;将汇编语言和高级语言编写的程序翻译成等价的机器语言,实现此功能的程序称为翻译程序;把汇编语言写的源程序翻译成机器语言的目标程序称为汇编程序;解释程序不是直接将高级语言的源程序翻译成目标程序后再执行,而是一个个语句读入源程序,即边解释边执行;编译程序是将高级语言写的源程序翻译成目标语言的程序。关系:汇编程序、解释程序和编译程序都是翻译程序,具体见P4 图 1.3。P14 3、编译程序是由哪

    2、些部分组成?试述各部分的功能?答:编译程序主要由8个部分组成:(1)词法分析程序;(2)语法分析程序;(3)语义分析程序;(4)中间代码生成;(5)代码优化程序;(6)目标代码生成程序;(7)错误检查和处理程序;(8)信息表管理程序。具体功能见P7-9。P14 4、语法分析和语义分析有什么不同?试举例说明。答:语法分析是将单词流分析如何组成句子而句子又如何组成程序,看句子乃至程序是否符合语法规则,例如:对变量 x:= y 符合语法规则就通过。语义分析是对语句意义进行检查,如赋值语句中x与y类型要一致,否则语法分析正确,语义分析则错误。P15 5、编译程序分遍由哪些因素决定?答:计算机存储容量大

    3、小;编译程序功能强弱;源语言繁简;目标程序优化程度;设计和实现编译程序时使用工具的先进程度以及参加人员多少和素质等等。补充:1、为什么要对单词进行内部编码?其原则是什么?对标识符是如何进行内部编码的?答:内部编码从“源字符串”中识别单词并确定单词的类型和值;原则:长度统一,即刻画了单词本身,也刻画了它所具有的属性,以供其它部分分析使用。对于标识符编码,先判断出该单词是标识符,然后在类别编码中写入相关信息,以表示为标识符,再根据具体标识符的含义编码该单词的值。补充:2、赋值语句: A:= 5 * C的语法和语义指的是什么?答:语法分析将检查该语句是否符合赋值语句规则,语义是指将 5 * C 的结

    4、果赋值为 A 。第二次作业:P38 1、设T111,010,T20,01,1001,计算:T2T1,T1*,T2+。T2T1011,0010,0111,01010,100111,1001010T1*,11,010,1111,11010,01011,010010T2+0,01,1001,00,001,01001,010,0101P38 3、令A0,1,2,写出集合A+和A*的七个最短符号串。A+:0,1,2,00,01,02,10(有多种可能)A*:,0,1,2,00,01,02(有多种可能)P38 5、试证明:A+A A*A*A。证明:A+A1A2AnA*A0(即)A+A A*A(A0A+ )

    5、AA+A+A+A(A0A+ )AA*A(证毕)P38 7、设有文法GS:SAAB | IF A THEN A ELSE ABC | B+C | +CCD | C*D | *DDX | (A) | -D 试写出VN和VT。VNS,A,B,C,DVTIF,THEN,ELSE,+,*,X,(,),-P38-39 8、设有文法GS:SaAbABcA | BBidt | 试问下列符号串(1)aidtcBcAb (3)ab (5)aidtcidtcidtb 是否为该文法的句型或句子。(1)SaAbaBcAbaidtcAbaidtcBcAb 句型但不是句子;(3)SaAbaBbabab 是句型也是句子;(5

    6、)SaAbaBcAbaidtcAbaidtcBcAbaidtcidtcBbaidtcidtcidtb句型也是句子。P39 10、给定文法:SaB | bAAaS | bAA | aBbS | aBB|b 该文法所描述的语言是什么?L(G)相同个数的a与b以任意次序连接而成的非空符号串。P39 11、试分别描述下列文法所产生的语言(文法开始符号为S):(1) S0S | 01(2) SaaS | bc(1) L(G)0n1| n1;(2) L(G)a2nbc | n0。P39 12、试分别构造产生下列语言的文法: (1) abna | n=0,1,2,3 (3) aban | n1 (5) an

    7、bmcp | n,m,p0(1)GVN,VT,P,S,VNS,A ,VTa,b,P:SaAaAbA |(3)GVN,VT,P,S,VNS,A ,VTa,b,P:SabAAaA | 或 AaA | a(5)GVN,VT,P,S,VNS,A ,B,C,VTa,b,c,P:SABCAaA |BbB |CcC |GVN,VT,P,S,VNS,T,C,VTa,b,c,P:STCTaTb |CcC |GVN,VT,P,S,VNS ,VTa,b,c,P:SaS | bS | cS |第三次作业:P39 15. 设文法G规则为:S:=ABB:=a|SbA:=Aa|bB对下列句型给出推导语法树,并求出其句型短语

    8、,简单短语和句柄。(2)baabaab (3)bBABb(2) S A B A a S b b B A B a b B a a句型baabaab的短语a, ba, baa, baab,简单短语a,句柄 a S(3) A B b B S b A B 短语bB, AB, ABb, 简单短语bB, AB, 句柄bBP40 18. 分别对i+i*i 和i+i+i中每一个句子构造两棵语法树,从而证明下述文法G是二义的。:=i|()|:=+|-|*|/1 i+i*i i + i * i * i i + i由于句子i+i*i可构造两棵不同的语法树,所以证明该文法是二义的。2. i+i+i i + i + i

    9、 + i i + i由于句子i+i+i可构造两棵不同的语法树,所以证明该文法是二义的。P40 19. 证明下述文法是二义的1) S:=iSeS|iS|i3) S:=A|BA:=aCbA|aB:=BCC|aC:=ba1) 对于句子iiieii可构造两棵不同的语法树,所以证明该文法是二义的。Si S e S i S i S i i S i S i S e S i i S i2) 对于句子ababa可构造两棵不同的语法树,所以证明该文法是二义的。 S A a C b A b a a S B B C C a b a b a P41 21. 令文法N:=D|ND D:=0|1|2|3|4|5|6|7|8

    10、|9给出句子0127,34,568最左推导和最右推导。解:0127的最左推导N=ND=NDD=NDDD=DDDD=0DDD=01DD=012D=01270127的最右推导N=ND=N7=ND7=N27=ND27=N127=D127=012734的最左推导N=ND=DD=3D=3434的最右推导N=ND=N4=D4=34568的最左推导N=ND=NDD=DDD=5DD=56D=568568的最右推导N=ND=N8=ND8=N68=D68=568P41 23. 设有文法如下::=V1V1:=V2|V1iV2V2:=V3|V2+V3|iV3V3:=)V1*|(试分析句子(, )(*, i(, (+(

    11、, (+(i(, (+)(i(*i(。解 = V1=V2=V3=(= V1=V2=V3=)V1*=)V2*=)V3*=)(*= V1=V2=iV3=i(= V1=V2=V2+V3=V3+V3=(+V3=(+(= V1=V1iV2= V1iV3= V1i(=V2i(=V2+V3i(=V2+( i(=V3+( i(=(+(i(= V1=V1iV2= V2iV2= V2+V3iV2= V3+V3iV2= (+V3iV2=(+)V1*iV2=(+) V1iV2*iV2=(+) V2iV2*iV2=(+) V3iV2*iV2=(+) (iV2*iV2=(+) (iV2*iV2=(+) (iV3*iV2=

    12、(+) (i(*iV2=(+) (i(*iV3=(+) (i(*i(P41 24. 下面文法那些是短语结构文法,上下文有关文法,上下文无关文法,及正规文法?1.S:=aB B:= cB B:=b C:=c2.S:=aB B:=bc C:=c C:=3.S:=aAb aA:=aB aA:=aaA B:=b A:=a4.S:=aCd aC:=B aC:=aaA B:=b5.S:=AB A:=a B:=bC B:=b C:=c6. S:=AB A:=a B:=bC C:=c C:=7. S:=aA S:= A:=aA A:=aB A:=a B:=b8. S:=aA S:= A:=bAb A:=a正规

    13、文法 1上下文无关文法 2 5 6 7 8上下文有关文法 3 短语结构文法 4P41 26. 给出产生下列语言L(G)=W|W0,1+且W不含相邻1的正规文法。 G=(S, A, B, 0, 1, P, S)P: S:=0|1|0B|1A A:=0|0S B:=0|1P41 27. 给出一个产生下列语言 L(G)W|Wa,b*且W中含a的个数是b个数两倍的前后文无关文法。文法G=(S, A, B, a, b, P, S)P: S:=AAB|ABA|BAA|A:=aSB:=bS或者S:=Saab|aSab|aaSb|aabS|Saba|aSba|abSa|abaS|Sbaa|bSaa|baSa|

    14、baaS|P42 29. 用扩充的BNF表示以下文法规则:1 Z:=AB|AC|A2 A:=BC|BCD|AXZ|AXY3 S:=aABa|ab4 A:=Aab|解:1Z:=A(B|C|):=AB|C2A:=BC(|D)|X(Z|Y):= BCD|X(Z|Y)3A:=a(AB|)b) := aABb4A:=ab|:=ab第四次作业:P74 2. 什么叫超前搜索?扫描缓冲区的作用是什么?词法分析程序在识别单词的时候,为进一步判明情况,确定下一步要做什么,一般采用超前读字符的方法,称超前搜索,扫描缓冲区的作用是为了识别单词符号。P74 4. 画出下列文法的状态图:Z:=Be B:=Af A:=e|

    15、Ae 并使用该状态图检查下列句子是否该文法的合法句子:f, eeff, eefe。由状态图可知只有eefe是该文法的合法句子。P74 5. 设右线性文法G=(S, A, B, a, b, S, P),其中P组成如下:S:=bA A:=bB A:=aA A:=b B:=a画出该文法的状态转换图。第五次作业:P74 6. 构造下述文法GZ的自动机,该自动机是确定的吗?它相应的语言是什么? Z:=A0 A:=A0|Z1|0解:先画出该文法状态转换图:NFA=(S,A,Z,0,1,M,S,Z)其中M: M(S,0)=A M(S,1)= M(A,0)=A,Z M(A,1)= M(Z,0)= M(Z,1)

    16、=A显然该文法的自动机是非确定的;它相应的语言为:0,1上所有满足以00开头以0结尾且每个1必有0直接跟在其后的字符串的集合;那么如何构造其相应的有穷自动机呢? 先构造其转换系统:根据其转换系统可得状态转换集、状态子集转换矩阵如下表所示:II0I1S0 1S, SA0 1 AA, Z, Z1 2 A, Z, ZA, Z, ZA2 2 1则其相应的DFA为:P74 7. 构造一个DFA,它接受0,1上所有满足下述条件的字符串,其条件是:字符串中每个1都有0直接跟在右边,然后,再构造该语言的正规文法。解:DFA=(S,A,Z,0,1,M,S,Z)其中M: M(S,0)=Z M(S,1)= A M(

    17、A,0)=Z M(Z,0)=Z M(Z,1)=A该语言的正规文法GZ为:右线性文法:/S:=0|1A|0Z 左线性文法:/S:=0|A0|Z0A:=0|0Z A:=1|Z1Z:=0|1A|0Z Z:=0|A0|Z0P74 8. 设 (NFA) M = ( A, B, a, b, M, A, B ),其中M定义如下:M (A, a) = A, B M (A, b) = B M (B, a) = M (B, b) = A, B请构造相应确定有穷自动机(DFA) M。解:构造一个如下的自动机(DFA) M, (DFA) M=K, a, b, M, S, ZS的元素是A B A, B由于M(A, a)

    18、=A, B,故有M(A, a)=A, B同样 M(A,b)=BM(B,a)= M(B,b)=A,B由于M(A,B,a)= M(A,a)U M(B,a)= A,BU = A,B故 M(A,B,a)= A,B由于M(A,B,b)= M(A,b)U M(B,b)=BU A,B = A,B故 M(A,B,b)= A,BS=A,终态集Z=A,B,B重新定义:令0=A 1=B 2=A, B,则DFA如下所示:可以进一步化简,把M的状态分成终态组1,2和非终态组0由于1,2a=1,2b=21,2,不能再划分。至此,整个划分含有两组1,20令状态1代表1,2,化简如图:P74 9. 设有穷自动机M = (S,

    19、 A, E, a, b, c, M, S, E),其中M定义为 M (S, c) = A M (A, b) = A M (A, a) = E 请构造一个左线性文法。解:先求右线性文法ScA AbA Aa | aE其左线性文法G=(VN, VT, P, S)VN=A, S VT=a, b, cP: Ac AAb SAaP74 10. 已知正规文法G = (S, B, C, a, b, c, P, S),其中P内包含如下产生式:S:=aS | aB B:=bB | bC C:=cC | c 请构造一个等价的有穷自动机。解:M=(S, B, C, T, a, b, c, M, S, T)M (S,

    20、a)=S M (S, a)=B M (S, b)= M (S, c)=M (B, a)= M (B, b)=B M (B, b)=C M (B, c)=M (C, a)= M (C, b)= M (C, c)=T M (C, c)=C第六次作业:P74 11. 构造下列正规式相应的DFA: (1)1(0|1)*101解:先构造该正规式的转换系统:由上述转换系统可得状态转换集K=S, 1, 2, 3, 4, 5, Z,状态子集转换矩阵如下表所示:II0I1S0 1S1, 2, 30 11, 2, 32, 32, 3, 41 2 32, 32, 32, 3, 42 2 32, 3, 42, 3,

    21、52, 3, 43 4 32, 3, 52, 32, 3, 4, Z4 2 52, 3, 4, Z2, 3, 52, 3, 45 4 3其对应的DFA状态转换图为:现在对该DFA进行化简,最终得到下列化简后的状态转换图(先将其分成两组终态组5和非终态组0, 1, 2, 3, 4,再根据是否可继续划分来确定最后的组数):P74 12. 将图3.24非确定有穷自动机NFA确定化和最少化。解:设(DFA)M = K, VT, M, S, Z,其中,K=0, 0, 1, 1,VT =a, b,M:M (1, a) =0 M (1, b) = M (0, 1, a) =0, 1 M (0, 1, b)

    22、=1M (0, a) =0, 1 M (0, b) =1S=1,Z=0, 0, 1令0, 1=2,则其相应的状态转换图为:现在对该DFA进行化简,先把状态分为两组:终态组 0, 2 和非终态组 1,易于发现 0, 2不可以继续划分,因此化简后的状态转换图如下:P74 13. 构造下列正规式的DFA: (1)b(a|b)*bab 此题的与P74第11题基本一样,见上;P74 15. 用两种方法将(NFA) M = (X, Y, Z, 0, 1, M, X, Z),构造相应的DFA,其中:M (X, 0) = Z M (X, 1) = X M (Y, 0) = X, YM (Y, 1) = M (

    23、Z, 0) = X, Z M (Z, 1) = Y第一种方法:先画出其状态转换图,利用子集法:假设(DFA) M=(K, VT, M, S, Z),其中K=X, Y, Z, X,Y, X, Z, Y, Z, X, Y, Z,VT=0, 1,M的规则如下表:II0I1S0 1XZX0 2 1YX, Y1 3 ZX, ZY2 4 1X, YX, Y, ZX3 6 0X, ZX, ZX, Y4 4 3Y, ZX, Y, ZY5 6 1X, Y, ZX, Y, ZX, Y6 6 3其中Y, Z为不可到达状态,应该删去,所以S=X,Z=Z, X, Z, X, Y, Z,再进行化简,发现4和6两状态等价,

    24、最后其DFA如下所示:第二种方法:先构造其对应的转换系统:由上述转换系统可得状态转换集、状态子集转换矩阵如下表所示:II0I1S0 1S, XZ, ZX0 1 2Z, ZX, Z, ZY1 3 4XZ, ZX2 1 2X, Z, ZX, Z, ZX, Y3 3 5YX, Y4 5 X, YX, Y, Z, ZX5 6 2X, Y, Z, ZX, Y, Z, ZX, Y6 6 5先化简,分为非终态集 2, 4, 5, 0 和终态集 6, 1, 3,易于发现可划分为0, 2,1,3, 6,4,5,其DFA如下所示:P74 16. 已知e1= (a|b)*,e2=(a*b*)*,试证明e1= e2。

    25、证明:L(e1)=L(a|b)*)= (L (a|b)*= (L (a)L(b)*=a, b*; L(e2)= L(a*b*)*)= (L (a*b*)*=(L(a*)L(b*)*=a*b*=a, b*; 因此e1= e2(得证)P74 18. 根据下面正规文法构造等价的正规表达式:S:=cC | a A:=cA | aB B:=aB | c C:=aS | aA | bB | cC | a 解:由式可得 B= aB + c B=a*c 由式可得 A= cA + aB A= c*aa*c 由式可得 S= cC + a 由式可得 C= aS + aA + bB + cC + a C= c*( aS + aA + bB + a) C= c*( aS + ac*aa*c + ba*c + a) S= cc*( aS + ac*aa*c + ba*c + a) + a = cc*aS+ cc*( ac*aa*c + ba*c + a) + a = (cc*a)*( cc*( ac*aa*c + ba*c + a) + a) = (cc*a)*( cc*( ac*aa*c | ba*c | a) | a)P74 19. a, b,写出下列正规集:(1)(a | b)*(aa | bb)(a | b)*解


    注意事项

    本文(王汝传编译原理习题答案.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开