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

上传人:豆**** 文档编号:17270117 上传时间:2022-05-23 格式:DOC 页数:12 大小:209.50KB
返回 下载 相关 举报
程序设计语言与编译习题解答.doc_第1页
第1页 / 共12页
程序设计语言与编译习题解答.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《程序设计语言与编译习题解答.doc》由会员分享,可在线阅读,更多相关《程序设计语言与编译习题解答.doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流程序设计语言与编译习题解答.精品文档.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)d

2、a (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 AdA | e (2)消除间接左递归:按S.A排序(按书上P116页的算法i=2,j=1时)将S的产生式代入有AAaeA | AbeA | ceA | fA (3)消除的直接左递归有AceAA | fAA AaeAA | beAA | e (4)对S的产生式提公因子有SAB | c B|

3、a | b (5)最后,文法G提取公因子,消除左递归后的产生式由, , , 和组成,无多余的产生式。(6)若按A.S排序,得到的产生式组合是另外的形式,但它们是等价的文法,读者可以试试。9-3解:消除左递归后,得文法G:S(L) | aLSLL, 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 be

4、gin 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 SiAS | e ABA A+BAe BbS* | a (2)FIRST集和FOLLOW集FIRSTFOLLOWSb,a#,*Si,e#,*Ab,a#,*,iA+,e#,*,iBb,a#,*,i,+预测分析表ai+b*#SSASSASSSiASSe

5、SeAABAABAAAeA+BAAeAeBBaBbS*(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)SaLLSLLSLLL)L,SL因为预测分析表无多重定义入口,所以文法G是LL(1)文法。10-1解:(1)规范规范推导(最右推导)最右推导SABASbAABbbBABb(2)语法树(推导树)(3)短语 bB, AB, ABb, bBABb 直接短语 bB, AB 句柄 b

6、B 最左素短语 bB10-2解:(1)因为存在推导SSbFFbFFaPbFFaPbPFaPbc所以FaPbc是文法G的一个句型。(2)语法树(3)短语 FaP, c, FaPbc 直接短语 FaP, c 句柄 FaP 最左素短语 FaP10-3解:拓广文法0.SS1.SAS2.Sb3.ASA4.AaLR(0)项目集规范族I0=closureSS I1=GO(I0,S) I2=GO(I0,A) I3=GO(I0,b)I0:SS SS SAS SbSAS ASA SAS GO(I1,a)=I4Sb ASA Sb GO(I2,A)=I2ASA Aa ASA GO(I2,b)=I3Aa SAS Aa

7、SbI4=GO(I0,a) I5=GO(I1,A) I6=GO(I1,S) I7=GO(I2,S)Aa ASA ASA SAS SAS ASA ASA SAS Ab ASA Sb SAS Aa ASA Sb SAS Aa Sb 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)最左推导

8、 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

9、),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)

10、所示。归约(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步推导,归约过

11、程也进行了17次归约,语法树如图(11)所示,其中的下标可表明其形成的先后。图(11)10-7解:0.SSFOLLOW(S)=$1.SABFOLLOW(A)=b,c2.BcBdFOLLOW(B)=d,$3.Bcd4.AaAb5.AabI0=closureSSI0:SSI4=GO(I2,B)I9=GO(I5,d) SAB SAB Bcd AaAbI5=GO(I2,c)I10=GO(I6,b) Aab BcBd AaAbI1=GO(I0,S) BcBdI11=GO(I8,d) SS BcBd BcBdI2=GO(I0,A) Bcd SABI6=GO(I3,A) BcBd AaAb Bcd GO(I

12、3,a)=I3I3=GO(I0,a)I7=GO(I3,b) AaAb Aab AabI8=GO(I5,B) AaAb BcBd Aab 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)EiEVAL=B设四元式初始编号ip=100(2)EiEV

13、AL= C(3)E-EEVAL=T1(101)(,c,-,T1)(4)EiEVAL=D(5)EE+EEVAL=T2(101)(+,T1,D,T2)(6)EE*EEVAL=T3(103)(*,B,T2,T3)(7)Si:=E(104)(:=,T3,-,A)11-4解:结果为333645211。11-5解:(1)E1CDE1F=101(100)(BE2F=103(102)(,A,B,104)(4)E1E*EE1VAL=T1(103)(j,-,-,0)(5)E2E+EE2VAL=T2(104)(*,2,z.T1)(6)Ai:=E2Achain=0(105)(+,y,T1,T2)(7)SAS1chai

14、n=0(106)(:=,T2,-,x)(8)SWS1S1chain=103(107)(j,-,-,102)(9)Sif E1 thenS1Schain=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,9

15、D(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解:abcdefB1122211B212111B

16、312212B422211B5111122698637分配给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(和J1),J2(和J2),J3(和J3)。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:=3

17、T:=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)J1:=T的地址J2:=A(J2的值为2)J2:=A的地址J3:=A(J3的值为2)J3:=A的地址J2:=J2+1(J2的值为3)J3:=J3+J1(J3的值为7)J3:=J1(T的值为5,未变)J2:=J2(A的值为3)J3:=J3(A的值为7)打印A的值为7。5. 名调用计算时用实参原文替换形参A:=2B:=3B:=A+1 (A替换y, A的值为3)A:=A+A+B(A的值为9)打印A的值为9。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com