欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    程序设计语言与编译习题解答.doc

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

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

    程序设计语言与编译习题解答.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流程序设计语言与编译习题解答.精品文档.4-5 解:上下文有关文法(1型文法),产生的语言L(G)=aibici | i1,i为整数4-6 解:3型文法,L(G)=ai | i1,i为奇数4-7 解:2型文法,L(G)=aibi | i1,i为整数4-8 解:1型文法,L(G)=aibici | i1,i为整数4-9 解:1. 最左推导最右推导SÞ (A) Þ (B) Þ(SdB)SÞ (A) Þ (B) Þ (SdB)Þ (A)dB) Þ (B)dB) Þ (SdS) Þ (Sda)Þ (S)dB) Þ (b)dB) Þ (A)da Þ (B)da)Þ (b)dS) Þ (b)da) Þ (s)daÞ (b)da)2. 语法树4-10解:1. 因为存在推导S Þ SbF Þ SbP Þ Sbc Þ Fbc Þ FaPbc所以FaPbc是文法G (S) 的一个句型。2. 语法树4-11解:因为串aaabaa可有下列两棵不同的语法树所以文法G (S)是二义文法。9-2解:(1)消除文法G的产生式直接左递归。ASeA' | fA' A'dA' | e (2)消除间接左递归:按S.A排序(按书上P116页的算法i=2,j=1时)将S的产生式代入有AAaeA' | AbeA' | ceA' | fA' (3)消除的直接左递归有AceA'A" | fA'A" A"aeA'A" | beA'A" | e (4)对S的产生式提公因子有SAB | c B| a | b (5)最后,文法G提取公因子,消除左递归后的产生式由, , , 和组成,无多余的产生式。(6)若按A.S排序,得到的产生式组合是另外的形式,但它们是等价的文法,读者可以试试。9-3解:消除左递归后,得文法G':S(L) | aLSL'L', SL' | e递归下降过程: Procedure match(t:token); begin if lookahead=t then lookahead=nexttoken else error end procedure S; begin if lookahead='a' then match('a') else if lookahead='(' then begin match('c'); L; if lookahead=')' then match(')') else error end end procudure L; begin S; L' end procudure L' begin if lookahead=',' then begin match(',') S; L' end end9-6解:(1)G'(S):SAS' S'iAS' | e ABA' A'+BA'e BbS* | a (2)FIRST集和FOLLOW集FIRSTFOLLOWSb,a#,*S'i,e#,*Ab,a#,*,iA'+,e#,*,iBb,a#,*,i,+预测分析表ai+b*#SSAS'SAS'S'S'iAS'S'eS'eAABA'ABA'A'AeA+BA'AeAeBBaBbS*(3)因为预测分析表无多重定义入口,所以G'是LL(1)文法。9-7解:对习题9-3的文法G消除左递归后,得文法G': S(L) | a LSL' L',SL' | e FIRST集和FOLLOW集FIRSTFOLLOWS(,a),#L(,a)L',e)预测分析表()a,#SS(L)SaLLSL'LSL'L'L')L',SL'因为预测分析表无多重定义入口,所以文法G是LL(1)文法。10-1解:(1)规范规范推导(最右推导)最右推导SÞABÞASbÞAABbÞbBABb(2)语法树(推导树)(3)短语 bB, AB, ABb, bBABb 直接短语 bB, AB 句柄 bB 最左素短语 bB10-2解:(1)因为存在推导SÞSbFÞFbFÞFaPbFÞFaPbPÞFaPbc所以FaPbc是文法G的一个句型。(2)语法树(3)短语 FaP, c, FaPbc 直接短语 FaP, c 句柄 FaP 最左素短语 FaP10-3解:拓广文法0.S'S1.SAS2.Sb3.ASA4.AaLR(0)项目集规范族I0=closureS'·S I1=GO(I0,S) I2=GO(I0,A) I3=GO(I0,b)I0:S'·S S'S· SA·S Sb·S·AS AS·A S·AS GO(I1,a)=I4S·b A·SA S·b GO(I2,A)=I2A·SA A·a A·SA GO(I2,b)=I3A·a S·AS A·a S·bI4=GO(I0,a) I5=GO(I1,A) I6=GO(I1,S) I7=GO(I2,S)Aa· ASA· AS·A SAS· SA·S A·SA AS·A S·AS A·b A·SA S·b S·AS A·a A·SA S·b S·AS A·a S·b GO(I1,b)=I3 GO(I2,a)=I4FOLLOW(S)=a, b, #FOLLOW(A)=a, b 状态5在输入a时有S4和r3的移进归约矛盾。 状态5在输入b时有S3和r3的移进归约矛盾。 状态7在输入a时有S4和r1的移进归约矛盾。 状态7在输入b时有S3和r1的移进归约矛盾。 文法G既不是LR(0)文法,也不是SLR(1)文法。10-4解:(1)最左推导 SÞ(T)Þ(T,S)Þ(S,S)Þ(a,S)Þ(a,(T) Þ(a,T,S)Þ(a,(S,S)=(a,(a,S)Þ(a,(a,a) 最右推导 SÞ(T)Þ(T,S)Þ(T,(T)Þ(T,(T,S)Þ(T,(T,a) Þ(T,(S,a)Þ(T,(a,a)Þ(S,(a,a)Þ(a,(a,a) 最左推导 SÞ(T)Þ(T,S)Þ(S,S)Þ(T),S)Þ(S),S)Þ(T,S),S) Þ(T,S,S),S)Þ(S,S,S),S)Þ(T),S,S),S) Þ (T,S),S,S),S)Þ(S,S),S,S),S)Þ(a,S),S,S),S) Þ(a,a),S,S),S)Þ(a,a),S),S)=(a,a),(T),S) Þ(a,a),(S),S)Þ(a,a),(a),S) =(a,a),(a),S)Þ(a,a),(a),a)最右推导SÞ(T)Þ(T,S)Þ(T,a) Þ(S,a)Þ(T),a)Þ(T,S),a) Þ(T,(T),a)Þ(T,(S),a)Þ(T,(a),a)Þ(T,S,(a),a) Þ(T,(a),a)Þ(S,(a),a)Þ(T),(a),a) Þ(T,S),(a),a)Þ(T,a),(a),a)Þ(S,a),(a),a) Þ(a,a),(a),a)(2)对句子(a,(a,a)的移进归约栈的变迁如下:其中,(3),(4),(8),(9),(12),(13),(15),(16),(18)共进行9次归约,最右推导也是9次推导,正好是递过程。归约(3)的句柄是a,语法树如图(1)所示。归约(4)的句柄是S,语法树如图(2)所示。归约(8)的句柄是a,语法树如图(3)所示。归约(9)的句柄是S,语法树如图(4)所示。归约(12)的句柄是S,语法树如图(5)所示。归约(13)的句柄是T,S,语法树如图(6)所示。归约(15)的柄是(T),语法树如图(7)所示。归约(16)的句柄是T,S,语法树如图(8)所示。归约(18)的句柄是(T),语法树如图(9)所示。图(9)即是完整的语法树。图中的下标是为了区分归约过程中同名文法符号和便于理解而添加的,实际是没有的,对句子(a,a),(a),a)的规约栈变迁如图(10)所示。图(10)规范推导(最右推导)一共进行17步推导,归约过程也进行了17次归约,语法树如图(11)所示,其中的下标可表明其形成的先后。图(11)10-7解:0.S'SFOLLOW(S)=$1.SABFOLLOW(A)=b,c2.BcBdFOLLOW(B)=d,$3.Bcd4.AaAb5.AabI0=closureS'·SI0:S'·SI4=GO(I2,B)I9=GO(I5,d) S·AB SAB· Bcd· A·aAbI5=GO(I2,c)I10=GO(I6,b) A·ab Bc·Bd AaAb·I1=GO(I0,S) B·cBdI11=GO(I8,d) S'S· B·cBd BcBd·I2=GO(I0,A) Bc·d SA·BI6=GO(I3,A) B·cBd AaA·b B·cd GO(I3,a)=I3I3=GO(I0,a)I7=GO(I3,b) Aa·Ab Aab· Aa·bI8=GO(I5,B) A·aAb BcB·d A·ab GO(I5,c)=I5上述状态集没有移进归约冲突,(a)是SLR文法,分析表如下:abcd$SAB0S3121acc2S543S3S764r15S5S986S107r5r58S119r3r310r4r411r2r210-10解:(1)FIRSTVT(P)=A,(LASTVT(P)=a,) FIRSTVT(F)=aLASTVT(F)=a(2)优先关系表:习题1111-1解:11-3解: 推导树如下:(1)EiE·VAL=B设四元式初始编号ip=100(2)EiE·VAL= C(3)E-EE·VAL=T1(101)(,c,-,T1)(4)EiE·VAL=D(5)EE+EE·VAL=T2(101)(+,T1,D,T2)(6)EE*EE·VAL=T3(103)(*,B,T2,T3)(7)Si:=E(104)(:=,T3,-,A)11-4解:结果为333645211。11-5解:(1)E1C<DE1·F=101(100)(<,C,D,102)(2)WwhileW·code=102(101)(j,-,-,103)(3)E2A>BE2·F=103(102)(>,A,B,104)(4)E1E*EE1·VAL=T1(103)(j,-,-,0)(5)E2E+EE2·VAL=T2(104)(*,2,z.T1)(6)Ai:=E2A·chain=0(105)(+,y,T1,T2)(7)SAS1·chain=0(106)(:=,T2,-,x)(8)SWS1S1·chain=103(107)(j,-,-,102)(9)Sif E1 thenS1S·chain=101习题12回边749110712-1解:(a)基本块程序流图B1 (1)(3)B2 (4)B3 (5)B4 (6)B5 (7)(8)B6 (9)B7 (10)(11)B8 (12)(13)B9 (14)(15)B10 (16)(17)(b)必经结点D(1)=1D(2)=1,2D(3)=1,3D(4)=1,3,4D(5)=1,3,4,5D(6)=1,3,4,6D(7)=1,3,4,7D(8)=1,3,4,7,8D(9)=1,3,4,7,8,9D(10)=1,3,4,7,8,10由回边74组成的循环7,4,5,6,8,10。(3)优化结果(3) B:=10(4) A:=A+8(5) if B100 then goto (8)(6) B:=B+10(7) goto (4)(8) write A12-2解:(1)基本块(2)程序流图 B1 (1)(3) B2 (4)(5) B3 (6)(7) B4 (8)12-7解:MOVbR0ADDR0cMOVaR1SVBR1R0MOVR0t1MOVdR0ADDR01MOVR1t2MOVeR1MVLR1fADDR0R1MOVt2R1DIVR1R012-8解:abcdefB1122211B212111B312212B422211B5111122698637分配给b, c, f,执行代价最省。13-2解:当运行到C调用B时,活动记录栈的状态如下图。13-4解:静态作用域规则下输出 0.250 0.250 0.250 0.250动态作用域规则下输出 0.250 0.125 0.250 0.1257-6解:设x, y, z对应的形式单元为J1(和J'1),J2(和J'2),J3(和J'3)。1. 引用调用A:=2B:=3T:=A+B(T的值为5)J1:=T的地址J2:=A的地址J3:=A的地址J2:=J2+1(A的值为3)J3:=J3+J1(A的值为3+5=8)打印A的值为8。2. 传值A:=2B:=3T:=A+B(T的值为5)J1:=T(J1的值为5)J2:=A(J2的值为2)J3:=A(J3的值为2)J2:=J2+1(J2的值为3)J3:=J3+J1(J3的值为7)打印A的值为2。3. 结果调用形式单元J1, J2, J3无初始化值,计算是不确定的,打印A的值仍为2。4. 传值得结果A:=2B:=3T:=A+B(T的值为5)J1:=T(J1的值为5)J'1:=T的地址J2:=A(J2的值为2)J'2:=A的地址J3:=A(J3的值为2)J'3:=A的地址J2:=J2+1(J2的值为3)J3:=J3+J1(J3的值为7)J'3:=J1(T的值为5,未变)J'2:=J2(A的值为3)J'3:=J3(A的值为7)打印A的值为7。5. 名调用计算时用实参原文替换形参A:=2B:=3B:=A+1 (A替换y, A的值为3)A:=A+A+B(A的值为9)打印A的值为9。

    注意事项

    本文(程序设计语言与编译习题解答.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开