ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:608KB ,
资源ID:6635494      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6635494.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【pc****0】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【pc****0】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(编译原理_课后习题答案_杨明.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

编译原理_课后习题答案_杨明.doc

1、编译原理习题答案习题1 1.1翻译程序:把用某种程序设计语言(源语言)编写的程序(源程序)翻译成与之等价的另一种语言(目标语言)的程序(目标程序)。 编译程序:一种翻译程序,将高级语言编写的源程序翻译成等价的机器语言或汇编语言的目标程序。 1.2词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成1.3词法分析:根据语言的词法规则对构成源程序的符号进行扫描和分解,识别出一个个的单词。 语法分析:根据语言的语法规则,把单词符号串分解成各类语法单位。 语义分析及中间代码生成:对语法分析识别出的语法单位分析其含义,并进 行初步翻译。 代码优化:对中间代码进行加工变换,以产生更高效的目标

2、代码。 目标代码生成:将中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或会变指令代码。 以上5个阶段依次执行。习题2 2.1 (1)有穷非空的符号集合(2)利用产生是规则A-v将A替换为v时与A的上下文无关。 (3)略 (4)推导是把句型中的非终结符用一个产生是规则的右部开替代的过程; 直接推导是将非终结符的替代结果只用了一次产生式规则。(5)略(6)一个句型的最左直接短语(7)如果一个文法存在某个句子对应两棵不同的语法树或有两个不同的最左(右)推导,则称这个文法是二义的。2.2(1)VN =Z,A,B VT =a,b,c,d,e (2)abbcde,abbbcde是,acde不是

3、。2.3 (1)LG=d|n1,m0 (2)2.4 (1) A=B=c=fAg=fBg=fCg=feg (2)A=AaB=AaC=Aae=Bae=BcCae=Bceae=Cceae=eceae(3)A=B=BcC=BcfAg=BcfAaBg=BcfAaCg=BcfAaeg=BcfBaeg=BcfCaeg=Bcfeaeg=Ccfeaeg=ecfeaeg(3)中题目有错应为CfCg|e2.5 LG=abc|aab,n22.6 (1)ZAB AAa| BBb| (2)ZaZb|ab (3)ZaAb AaAb|b (4)ZAB AaAb|ab BcB| (5)ZaaAb|ab ZaaBb|bb Aaa

4、Ab|ab BaaBb|bb2.7 一位数:Z2|4|6|8 两位数:ZAB A1|2|3|4|5|6|7|8|9 B0|2|4|6|8 三位以上:ZACB A1|2|3|4|5|6|7|8|9 B0|2|4|6|8 CCD D0|1|2|3|4|5|6|7|8|92.8证明:E=E+T=E+T*F 短语:T*F E+T*F 直接短语:T*F 句柄:T*F2.9 语法树: E 短语:E*T , (E*T) , F(E*T) ,F ,E* F(E*T) E * F 直接短语:E*T , F T F 句柄:F F ( E ) E * T 2.10(1)语法树 (2) 直接短语:a , Z Z 句柄

5、:Z ( L ) L , Z Z ( L ) Z a2.11最左推导:Z=ZaB=BaB=B+AaB=A+AaB=(+)Z*aB=(+)ZaB*aB =(+)+aB*aB=(+)+aA*aB=(+)+a(*aB=(+)+a(*aA =(+)+a(*a( 直接短语:(,+ 句柄:(2.12(1) S=iSeS=iiSeS=iiIeS=iiIeI S=iS=iiSeS=iiIeS=iiIeI (2) S=SaS=cSaS=cfaS=cfaf S=cS=cSaS=cfaS=cfaf (3) E=EOE=EOEOE=iOEOE=i+EOE=i+iOE=i+i-E=i+i-i E=EOE=iOE=i+E

6、=i+EOE=i+iOE=i+i-E=i+i-i2.13 ZaABZ|cCACd AbAB|aZA|cCC BbAB|Czb CcZ|c习题3 3.1(1)确定的有限自动机 (2)不确定的有限自动机 (3)正规集是一类特殊的单词集合,正规式是正规集的描述工具3.2 (1) (1|2|3|4|5|6|7|8|9|0)*(1|3|5|7|9) (2) 11(0|1)*00 3.3 证明:b*(a|b)+=a,b,ab,ba,aa,bb (a|b)+=a,b,ab,ba,aa,bbcbaDSSSssS0DSSSssADSSSssBDSSSssCDSSSssZ3.4 (1) DSSSssS0DSSSs

7、sZaDSSSssAabb(2) bbDSSSssFbDSSSssEabDSSSssDDSSSssCDSSSssBDSSSssS0aDSSSssZbDSSSssAabaDSSSss Ga(3) (4)aDSSSssBaDSSSssZDSSSssS0DSSSssAbabbaDSSSssS0 DSSSssZDSSSssX010DSSSssU1baDSSSssYDSSSssAaDSSSssZb3.5(1) (2)(3) 3.6(1) (01|10) *(01|10) (2) (0(1|00)*)|00 3.7(1) Z1AB (2)ZAB A(0|1)A A0A| A0|1 B(0|1)B| B0B

8、 B 3.8 r=a(a|b)*bb 3.9 Z1B B0Z|0 Z0Z|baDSSSss3DSSSss0baDSSSss1DSSSss4bbaaDSSSssADSSSssBaDSSSssCaDSSSssDbb 3.10 3.11b 习题44.1 (1)若文法GZ满足文法不含左递归 (2)4.2(1) First(S)=a,d First(B)=a,d,c,First(A)=a,d,e,c First(D)=a,d,Follow(S)=#,a,b,d,e Follow(B)=a,dFollow(A)=b Follow(D)=e,a,d,b(2) 不是4.3 (1) 证明: First(Z)=a

9、,b,c Follow(S)=#,a,b,c,d First(A)=a,b,c,d Follow(A)= #,a,b,c,d First(B)=a,d,c Follow(B)= a,b,c,d 是LL(1)文法。 (2) 输入非终结符abcd#ZZBAZBAZBAAABZABZABZAdBBaABbZBc (3)略4.4 (1) ZNZ1 Z1E| EZE1 E1 *E| Ni (2) First(Z)=i Follow(Z)=#,*, First(Z1)=, Follow(Z1)= #,*,First(E)=i Follow(E)= First(E1 )=*, Follow(E1 )= Fi

10、rst(N)=i Follow(N )=#,* (3) 输入非终结符*i#ZZNZ1Z1Z1EZ1Z1EEZE1E1E1 E1 *EN Ni4.5 (1) First(A)=a, Follow(A)= #,a 不是LL(1)文法 (2) void A() If(sym=a) getsymbol(); A();If(sym=a) getsymbol();Else error();4.6 AB BXBBAB|XaX|bX X aX|bX| void A() if(sym=) getsymbol(); B();void B() X(); if(sym=) getsymbol(); B();void

11、B() if(sym=) A(); getsymbol(); B();void X() if(sym=a) getsymbol(); X();else if(sym=b) getsymbol(); X();else error();4.7(1) Z(L)|aZ|b LZL L,ZL| BdB BbB| (2) First(Z)=(,a,b Follow(Z)=,),# First(L)= (,a,b Follow(L)=),First(L)=, Follow(L)= )First(B )=d Follow(B )=# First(B)=b, Follow(B )=# (3) 4.8(1) Za

12、PZ|*aPZ Z*aPZ| P+aP PP| (2) First(Z)=a,* Follow(Z)= # First(Z)= *, Follow(Z)=# First(P)=+ Follow(P)= #,*First(P )=+, Follow(P )=#,* (3) 输入非终结符a*+#ZZaPZZ*aPZZ1Z*aPZZPP+aPPP PPP习题5 5.1 分析:先求出FirstVT,LastVT集STFirstVTa b (, a b (LastVTa b ), a b ) (1)算符优先关系表如下:ab(),ab(), (2)因为关系表中无多重定义项,顾是算符优先文法 (3)一种优先

13、函数如下ab(),f22022g44400 5.2 (1)FirstVT,LastVT集如下 STFirstVTa c d a c d ,LastVTb c db c d ,(2)算符优先关系表abcD,abcd,(3)是算符优先文法(4)优先函数abcd,f03332g40331 (5)题目有误aASbbAabAI6:ASA. SA.SS.ASS.bA. SAA.aSI6:SAS. AS.AA.SAA.aS.ASS.bASbbI3: Sb. aI0: S.SS.ASS.bA.SAA.aA.I1: SS. accAS.AA. SAA.aS.ASS.bSSI5: AS.AA. SAA.aS.AS

14、S.bI2:Aa. I4:SA.SS.ASS.bA.SAA.aASaAb5.3 (1)文法要拓广 SS SAS Sb ASA Aa (2) LR(0)分析表状态ACTIONGOTO ab#SA0S2S3141S2S3acc562r5r5r53r3r3r34S2S3745S2S3566S2/r4S3/r4r4747S2/r2S3/r2r256(3)不是LR(0)文法。5.4(1)文法要拓广 SS SASaaaAI2: AAA. SA.SAA.AS.ASS.bA.AAA.aA. SAI2: SA.SAA.AS.ASS.bA.AAA.aA. SI0: S.SS.ASS.bA.AAA.aA. SI1:

15、 SS. accI5: SAS. AI4: Aa. I3: Sb. bbb Sb AAA Aa A(2) SLR(1)分析表 先求Follow(S)=# Follow(A)=a,b状态ACTIONGOTO ab#SA0S4/r6S3/r6121acc2S4/r6S3/r6563r34r5r55r26S4/r6/r4S3/r6/r456(3)不是SLR(1)文法。(4)LR(1)项目集族 aaaAI2: AAA . b/a SA . S, #AA . A, b/aS . AS , #S. b , #A . AA , b/a A. a, b/aA . SAI2: SA . S , #AA . A,

16、 b/aS. AS , #S. b, #A. AA , b/a A. a , b/aA. , b/a SI0: S. S,#S. AS,#S. b,#A. AA,b/aA. a, b/aA. , b/a SI1: SS.,# accI5: SAS . ,# AI4:Aa. ,b/a I3: Sb . , # bbb(5) LR(1)分析表 状态ACTIONGOTO ab#SA0S4/r6S3/r6121acc2S4/r6S3/r6563r34r5r55r26S4/r6/r4S3/r6/r456(6)不是LR(1)文法。5.5 (1)拓广文法 SA AaAd AaAb A I0: S.AA.aA

17、dA.aAbA. I2: Aa.AdAa.AbA.aAdA.aAbA. I3: AaA.dAaA.bI1: SA . accI5: AaAb. I4:AaAd. AAadba 是SLR(1)文法,其SLR(1)表如下: 状态ACTIONGOTO abd#A0S2r4r4r411acc2S2r4r4r433S5S44r2r2r25r3r3r3 #ab#分析过程:2a0#3A2a0#S2r4 A归约S5S2r3 AaAb归约acc成功 0# 5b3A2a0#3A2a0#2a0#5.6LR(0)项目集族:cI8:B aAc. I9: BaAb. AAb.I2: Ab.Ba B.aAc B.a B.a

18、AbbBabaAI0: S.AA.AbA.bBaI1: SA. accAA.bAbI3: AAb. I4: AbB.a I5: AbBa. I6: Ba.Ac Ba. Ba.Ab A.AbA.bBa I7: BaA.c BaA.b AA.bb 从上述项目集族中,状态集I9是归约-归约冲突。因而不是LR(0)文法。 状态集I6时归约-移进冲突。但在SLR(1)中,Follow(A)=#,b,c Follow(B)=a因而在SLR(1)中,I9与I6的冲突就消失了,因而是SLR(1)文法。5.7 (1)文法拓广: SS SAaAb SBbBa A B SLR(1)项目集族: Follow(A)=a

19、,b Follow(B)=a,bI0:S.S S.AaAb S.BbBa A. B. 在I0种有归约-归约冲突。因而不是SLR(1)文法。 I4:SAa.Ab ,#A.,b aABbabI1:S.S,# accI2:SA.aAb ,#I3:SB.bBa ,#I0:S.S,#S.AaAb,#S.BbBa,#A.,a B. , b SABI5:SBb.Ba ,#B. , a I6:SAaA.b ,#I7:SAaAb. ,# I8:SBbB.a ,#I:SBbBa. ,# (2)LR(1)项目集族:从项目集族中可发现,不存在冲突项。因而是LR(1)文法。 习题66.1 6.2 改造文法。新文法GS如

20、下: SL.R SL LLB LB RBR RB B0 B1 文法GS的S属性文法如下:规则语义规则SL.RS.val=L.val+R.valSLS.val=L.valLL1BL.val= L1.val*2+B.valLBL.val=B.valRBR1R.val=(B.val+ R1.val)*0.5RBR.val=B.val*0.5B0B.val=0B1B.val=16.3 题目有误。加上Tnum规则。 即文法为 GE:ETR R+TR/-TR/ Tnum 只用综合属性翻译方案如下: ETR R+TMR1 R -TMR1 R M print(+) N print(-) T num print

21、(num.lexval)6.4 (1)文法改造如下: GS: S S S (L) S a L L,S L S 给S与L配上继承属性S.level L.level 翻译方案如下:(输出每一个a的嵌套深度) S S.level=0 S S (L.level=S.level+1L) S aprint(S.level) L L1.level=L.levelL1,S.level=L.levelS L S.level=L.level S(2) 打印出每个a在句子中是第几个字符的翻译方案。 指派属性如下: S.pos是继承属性,表示S所代表的字符串的第一个字符的位置 S.len是综合属性,表示S所代表的字符

22、串的长度 L.pos与L.len含义同S 翻译方案如下: S S.pos=1S S (L.pos=S.pos+1L)S.len=L.len+2 S aprint(S.pos)S.len=1 L L1.pos=L.posL1,S.pos=L1+L.len+1SL.len=L1.len+1+S.len L S.pos=L.posSL.len=S.len6.5 语法分析树方法主要步骤:(1) 输入串进行语法分析,构造语法分析树(2) 遍历语法树,确定依赖图(3) 根据依赖图,确定一种语义计算次序(4) 属性计算习题77.1 答:进行语法分析时,当发生归约(或推导)时,自动调用该规则所配置的语义规则,

23、自动进行语义的处理。语义处理的时机,调用何种语义规则,由当时所进行的语法分析所决定。7.2 分析:指派属性E.left表示表达式E是否是左值表达式。若E.left为true,表示是左值。否则是右值表达式。 翻译方案如下: 行号产生式规则语义动作1EE1+E2E.left=false2E(E1)E.left=E1.left3EE1+if(E1.left)E.left=false;elseprint(“Invalid Value in increment”);4EidE.left=true5EnumE.left=false7.3 (1)ab-c+* (2)ab+-cd+*ab+c+- 7.4(1)

24、行号产生式规则语义动作及含义1 EE1?E2:E3E1.true=newlabel;E1.false=newlabel;E1.goto=newlabel;E.place=newTemp;E.code=E1.code|gencode(E1.true,:)|E2.code|gencode(E.place,:=,E2.place)|gencode(goto,E1.goto)|gencode(E1.false,:)|E3.code|gencode(E1.place,:=,E3.place)|gencode(E1.goto,:)(2) a:=x0? x+1:x+2; 翻译如下:(三地址代码) if x0

25、 goto L1 goto L2 L1: T1:=x+1 a := T1 goto L3 L2: T2:=x+2 a := T2 L3: 7.5 (1) Sfor(i=E1;MiE2;Ni+)WS, M N W(2)行号产生式规则语义动作与含义1Sfor(i=E1;MiE2;Ni+)WS,M.label=newlabel;N.label=newlabel;W.label=newlabel;S.code=E1.code|gencode(i,:=,E1.place)|gencode(M.label,:)|E2.code|gencode(if,iE2.place,goto W.label)|genc

26、ode(goto,S.next)|Gencode(N.label,:)|gencode(+,i,1,i)|gencode(goto,M.label)|S1.code|Gencode(goto,N.label)解释:产生的代码格式如下: E1.code i:=E1.place M.label: E2.code if iE2.place goto W.label goto S.nextN.label: i=i+1 goto M.labelW.label: S1.code goto N.label 2M无3N无4W无7.6(1) SdoMS1 while(E)(2)行号产生式规则语义动作与含义1SdoMS1 while(E)M.label=newlabel;E.true=M.label;E.false=S.next;S.code=gencode(M.label,:)|S1.code|E.code2M无7.7 答:“

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服