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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

《编译原理》总结.docx

1、编译原理总结编译原理模拟试卷及答案学生姓名:_ 学号:_学生系别:_ 专业:_ 年级_班级_ 课程名称:编译原理 课程性质:专业必修一、 文法G的产生式为: (12%) + | * | I | ()a)给出(I+I)* I的最左推导、最右推导及相应的推导树;b)列出句型 + * 的所有短语、简单短语和句柄。答:a)最左推导:*()*(+)*(+)*(+)*(I+)*(I+)*(I+I)*(I+I)*(I+I)*(I+I)*I最右推导:*I*I()*I(+)*I(+)*I(+I)*I(+I)*I(+I)*I(I+I)*I推导树如下:b)所有短语:(2个)、*、 + * 简单短语:(2个)短语:二

2、、构造下列正则表达式的确定性的有限状态自动机。 (12%)aba(a|b)*a答:三、证明下面文法是SLR(1)文法,并构造其SLR分析表。 (15%) + | | * | a | b答:分析表如下所示:状 态 T项 目 集输入符号下一状态0*1+12 2 3* 3a a4b b51*Accept*+62*/+#2*7* 7a a4b b53* /+/a/b#4* *84*a#65*b#76*+9 9 3* 3a a4b b57* /+/a/b#3* *88*#59*+/+#1* 7* 7a a4b b5四、写出下列表达式的三地址形式的中间表示。 (16%)(1) 5+6 (a + b);(2

3、) A( B (C D);(3) for j:=1 to 10 do aj + j:=0;(4) if x y then x:=10 else x:= x + y;答: 100: t1:=a+b 101: t2:=6*t1 102: t3:=5+t2100: if A goto 102 101: goto T 102: if B goto 104 103: goto F 104: if C goto T 105: goto 106 106: if D goto T 107: goto F100: j:=1 101: if j10 goto NEXT 102: i:=j+j 103: ai:=0

4、 104: goto 101100: if xy goto 102 101: goto 104 102: x:=10 103: goto 105 104: x:=x+y 105:五、条件语句可形式定义为: (20%) IF THEN 1 ELSE 2其中带有属性1.type 值为“boolean” 表示是布尔类型2.true 和.false 值为中真和假的尚待回填的出口的链首指针条件语句的语义可描述为:t:=e;if not t then goto L1; 1;goto L2;L1: 2;L2:其中 e 为的值。试用句法制导翻译的方法写出符合上述要求的条件语句的翻译方案。答:条件语句的属性翻译

5、文法为:ifCheckBool(.type);TLT:=NewTL;GEN(LABEL,TLT);Backpatch(.true,TLT);.false:=.false; then 1 .TL:=NewTL;GEN(BR, .TL);TLF:=NewTL;GEN(LABEL,TLF);Backpatch(.false,TLF); else 2GEN(LABEL,.TL);六、对如下程序框架,若采用以过程为单位、二级存储区的存储分配方法.试写出当程序流到达L时,整个运行栈的内容. (15) procedure main procedure q(x,y : int) begin Z:real; a

6、rray Bx.y of real; begin D,E: real; array C1.600 of int; end; begin array A1.x of real; begin E,F : int; L: end; end; end;/q begin r,s : int; array T10.400 of real; call q(1,200); end;/main要求用图的形式详细列出调用记录中各个项的分布情况。答:调用记录中各项的分布情况如图6.29所示:七、设基本块由如下语句构成:(10)T0: =3.14; T1:=2*T0; T2:=R+r; A:=Tl*T2; B:=A;

7、 T3:=2*T0;T4:=R+r;T5:=T3*T4;T6:=R-r;B:=T5*T6;a)试给出基本块的DAG。b)根据DAG重写基本块。c)若所在的程序中只有A和B在后将要被引用,试写出优化后的基本块。答:1)基本块 的DAG如图7.1所示。图7.1 基本块 的DAG2)因为DAG重写基本块必须满足的约束条件是:DAG中各节点计算时,其子节点已经完成计算。所以重写序列为1、3、4、5、7、2、6、8。即可重写为:T0:=3.14;T2:=R+r;T4:=T2;T6:=R-r;T1:=6.28;T3:=T1;A:=6.28*T2;T5:=A;B:=A*T6;3)因为只有A、B将在 后被引用

8、,所以最后优化的代码为:S1:=R+r ;S2:=R-r ;A:=6.28*S1;B:=A*S2;其中,S1、S2为临时变量。历年试题及答案一 (每项选择2分,共20分)选择题1将编译程序分成若干个“遍”是为了_。a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2构造编译程序应掌握_。a.源程序 b.目标语言c.编译方法 d.以上三项都是3变量应当。a.持有左值 b.持有右值c.既持有左值又持有右值 d.既不持有左值也不持有右值4编译程序绝大多数时间花在_上。a.出错处理 b.词法分析c.目标代码生成 d.管理

9、表格5词法分析器的输出结果是_。a.单词的种别编码 b.单词在符号表中的位置c.单词的种别编码和自身值 d.单词自身值6正规式MI和M2等价是指_。a. MI和M2的状态数相等 b.Ml和M2的有向弧条数相等。C.M1和M2所识别的语言集相等 d. Ml和M2状态数和有向弧条数相等7中间代码生成时所依据的是。 a语法规则 b词法规则 c语义规则 d等价变换规则8后缀式ab+cd+/可用表达式_来表示。 a a+b/c+d b (a+b)/(c+d) c a+b/(c+d) d a+b+c/d9程序所需的数据空间在程序运行前就可确定,称为_管理技术。 a.动态存储 b.栈式存储 c.静态存储 d

10、.堆式存储10.堆式动态分配申请和释放存储空间遵守_原则。 a.先请先放 b.先请后放 c.后请先放 d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。2.已知文法GE: EET+|TTTF* | FFF | a 试证:FF*是文法的句型,指出该句型的短语、简单短语和句柄. 3为正规式(a|b) *a(a|b)构造一个确定的有限自动机。4设文法G(S): S(L)|a S|a LL,S|S (1) 消除左递归和回溯; (2) 计算每个非终结符的FIRST和FOLLOW; (3) 构造预测分析表。5 已知文法 A-aAd| aAb| 判断该文法是否SL

11、R(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。6构造算符文法GH的算符优先关系(含)。 GH:HH;M|M Md|aHb7已构造出文法G(S)(1)S BB(2)B aB(3)B b1)。给出DFA图2).给出LR分析表3)假定输入串为abaab,请给出LR分析过程(即状态,符号,输入串的变化过程)。8将下面的语句翻译成四元式序列: while ACBA(1) A-aAd(2)A- aAb(3)A- (2)构造识别活前缀的DFA FOLLOW(A)=d,b,# 对于状态I0:FOLLOW(A)a= 对于状态I1:FOLLOW(A)a= 因为,在DFA中无冲突的现象,所以该文法

12、是SLR(1)文法。 (3)SLR(1)分析表 状态 ACTION GOTO a B d # A 0 S2 r3 r3 r3 1 1 acc 2 S2 r3 r3 r3 3 3 S5 S4 4 r1 r1 r1 5 r2 r2 r2 (4)串ab#的分析过程 步骤 状态栈 符号栈 当前字符 剩余字符串 动作 1 0 # a b# 移进 2 02 #a b # 归约A- 3 023 #aA b # 移进 4 0235 #aAb # 归约A- aAb 5 01 #A # 接受 6 【解答】 由Md和Ma得:FIRSTVT(M)=d,a; 由H-H;得:FIRSTVT(H)=; 由HM得:FIRST

13、VT(M) cFIRSTVT(H),即FIRSTVT(H)=;,d,a 由Md和Mb得:LASTVT(M)=d,b; 由H-,;m得:LASTVT(H)=; 由HM得:LASTVT(M)cLASTVT(H),即LASTVT(H)=;,d,b 对文法开始符H,有#H#存在,即有=,#,也即;,#d. #, b#。 对形如Pab,或PaQb,有a=b,由Ma|b得:a=b; 对形如PaR,而bFIRSTVT(R),有ab。 由H;M得:;FIRSTVT(M),即:d,:a 由MaH得:aFIRSTVT(H),即:a;,a;,即:;,d;,b; 由MHb得:LASTVT(H)b,即:;b,db,bb

14、 由此得到算符优先关系表,见表3.5。7 【解答】(1)LR分析表如下:(2)分析表状态 ACTION GOTO a b # S B0 s3 s4 1 21 acc 2 S3 S4 53 s3 s4 64 r3 r3 5 R1 R1 r1 6 R2 R2 R2 (3) 句子abaab的分析过程表:句子abaab的分析过程步骤 状态 符号栈 输入串 所得产生式0 #0 # abaad# 1 #03 #a baad# 2 #034 #ab aab# Bb3 #036 #aB aab# BaB4 #02 #B aab# 5 #023 #Ba ab# 6 #0233 #Baa b# 7 #02334

15、#Baab # 8 #02336 #BaaB # 9 #0236 #BaB ad# 10 #025 #BB ad# 11 #01 #S d# 12 # # d# 13 识别成功 8 【解答】该语句的四元式序列如下(其中E1、E2和E3分别对应:ACBD, A=1和AD并且关系运算符优先级高): 100 (j,A,C,102) 101(j,_,_,113) /*E1为F*/ 102 (j,B,D,104) /*El为T*/ 103 (j,_,_,113) /*El为F*/ 104 (j=,A,1,106) /*Ez为T*/ 105 (j,_,_,108) /*EZ为F*/ 106 (,C,1,C) /*C:=C+1*/ 107 (j,_,_,112) /*跳过else后的语句*/ 108 (j,A,D,110) /*E3为T*/ 109 (

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

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