ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:140.98KB ,
资源ID:4548570      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序设计语言与编译习题解答.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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)da (b)da)2. 语法树4-10解:1. 因为存在推导S

2、 SbF SbP Sbc Fbc FaPbc所以FaPbc是文法G (S) 的一个句型。2. 语法树4-11解:因为串aaabaa可有下列两棵不同的语法树所以文法G (S)是二义文法。9-2解:(1)消除文法G的产生式直接左递归。 ASeA | fA AdA | (2)消除间接左递归:按S.A排序(按书上P116页的算法i=2,j=1时)将S的产生式代入有 AAaeA | AbeA | ceA | fA (3)消除的直接左递归有 AceAA | fAA AaeAA | beAA | (4)对S的产生式提公因子有 SAB | c B| a | b (5)最后,文法G提取公因子,消除左递归后的产生

3、式由, , , 和组成,无多余的产生式。(6)若按A.S排序,得到的产生式组合是另外的形式,但它们是等价的文法,读者可以试试。9-3解:消除左递归后,得文法G: S(L) | a LSL L, SL | 递归下降过程: 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 lookahea

4、d=) 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 | ABA A+BA BbS* | a (2)FIRST集和FOLLOW集FIRSTFOLLOWSb,a#,*Si,#,*Ab,a#,*,iA+,#,*,iBb,a#,*,i,+预测分析表ai+b*#SSASSASSSiASSSAABAABAAAA+BAAABBaBbS*(3)因为预测分析表无

5、多重定义入口,所以G是LL(1)文法。9-7解:对习题9-3的文法G消除左递归后,得文法G: S(L) | a LSL L,SL | FIRST集和FOLLOW集FIRSTFOLLOWS(,a),#L(,a)L,)预测分析表()a,#SS(L)SaLLSLLSLLL)L,SL因为预测分析表无多重定义入口,所以文法G是LL(1)文法。 10-1解:(1)规范规范推导(最右推导)最右推导SABASbAABbbBABb(2)语法树(推导树)(3)短语 bB, AB, ABb, bBABb 直接短语 bB, AB 句柄 bB 最左素短语 bB10-2解:(1)因为存在推导SSbFFbFFaPbFFaP

6、bPFaPbc所以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 Sb SAS ASA SAS GO(I1,a)=I4 Sb ASA Sb GO(I2,A)=I2 ASA Aa ASA GO(I2,b)=I3 Aa SAS Aa SbI4=GO(I0,a) I5=GO(I1,A) I6=GO(I1,S

7、) 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)最左推导 S(T)(T,S)(S,S)(a,S)(a,(T) (a,T,S)(

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

9、(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

10、,语法树如图(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、先后。图(11)10-7解:0.SS FOLLOW(S)=$1.SAB FOLLOW(A)=b,c2.BcBd FOLLOW(B)=d,$3.Bcd4.AaAb5.AabI0=closureSSI0:SS I4=GO(I2,B) I9=GO(I5,d) SAB SAB Bcd AaAb I5=GO(I2,c) I10=GO(I6,b) Aab BcBd AaAbI1=GO(I0,S) BcBd I11=GO(I8,d) SS BcBd BcBdI2=GO(I0,A) Bcd SAB I6=GO(I3,A) BcBd AaAb Bcd GO(I3,a)=I3I3=GO(I0,a) I7=GO(I

12、3,b) AaAb Aab Aab I8=GO(I5,B) AaAb BcBd Aab GO(I5,c)=I5上述状态集没有移进归约冲突,(a)是SLR文法,分析表如下:abcd$SAB0S3121acc2S543S3S764r15S5S986S107r5r58S119r3r310r4r411r2r210-10解:(1)FIRSTVT(P)=A,( LASTVT(P)=a,) FIRSTVT(F)=a LASTVT(F)=a(2)优先关系表:习题1111-1解:11-3解: 推导树如下:(1)Ei EVAL=B 设四元式初始编号ip=100(2)Ei EVAL= C(3)E-E EVAL=T1

13、 (101)(,c,-,T1)(4)Ei EVAL=D(5)EE+E EVAL=T2 (101)(+,T1,D,T2)(6)EE*E EVAL=T3 (103)(*,B,T2,T3)(7)Si:=E (104)(:=,T3,-,A)11-4解:结果为333645211。11-5解:(1)E1CD E1F=101 (100)(B E2F=103 (102)(,A,B,104)(4)E1E*E E1VAL=T1 (103)(j,-,-,0)(5)E2E+E E2VAL=T2 (104)(*,2,z.T1)(6)Ai:=E2 Achain=0 (105)(+,y,T1,T2)(7)SA S1chai

14、n=0 (106)(:=,T2,-,x)(8)SWS1 S1chain=103 (107)(j,-,-,102)(9)Sif E1 thenS1 Schain=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)=1 D(2)=1,2 D(3)=1,3D(4)=1,3,4 D(5)=1,3,4,5 D(6)=1,3,4,6D(7)=1,3,4,7 D(8)=1,3,4,7,8 D(9)

15、=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解:MOV b R0ADD R0 cMOV a R1SVB R1 R0MOV R0 t1MOV d R0ADD R0 1MOV R1 t2MOV e R1MVL R1 fADD R0 R1MOV t2

16、R1DIV R1 R012-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(和J1),J2(和J2),J3(和J3)。1. 引用调用 A:=2 B:=3 T:=A+B(T的值为5) J1:=T的地址 J2:=A的地址 J3:=A的地址 J2:=J2+1(A

17、的值为3) J3:=J3+J1(A的值为3+5=8) 打印A的值为8。2. 传值 A:=2 B:=3 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:=2 B:=3 T:=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:=2 B:=3 B:=A+1 (A替换y, A的值为3) A:=A+A+B(A的值为9) 打印A的值为9。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1