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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

编译原理考试陈火旺含答案.docx

1、编译原理考试 陈火旺含答案编译原理试题A (2003.12.4)一、 回答下列问题:(30分)1. (6分)对于下面程序段program test (input, output) var i, j: integer; procedure CAL(x, y: integer); begin y:=y*y; x:=x-y; y:=y-x end; begin i:=2; j:=3; CAL(i, j) writeln(j) end. 若参数传递的方法分别为(1)传值、(2)传地址,(3)传名,请写出程序执行的输出结果。2. (6分)计算文法G(M)的每个非终结符的FIRST和FOLLOW集合,并判

2、断该文法是否是LL(1)的,请说明理由。G(M):M TBT Ba | B Db | eT | D d | 3. (4分)考虑下面的属性文法 产 生 式 语 义 规 则 SABC Aa Bb Cc B.u := S.u A.u := B.v + C.v S.v := A.v A.v :=3*A.u B.v := B.u C.v := 1 (1) 画出字符串abc的语法树;(2) 对于该语法树,假设S.u的初始值为5,属性计算完成后,S.v的值为多少?4. (4分)运行时的DISPLAY表的内容是什么?它的作用是什么?5. (5分)对下列四元式序列生成目标代码: A:=B*CD:=E+AG:=B

3、+CH:=G*D其中,H在基本块出口之后是活跃变量, R0和R1是可用寄存器。6. (5分)写出表达式a+b*(c-d)对应的逆波兰式、三元式序列和抽象语法树。二、 (8分)构造一个DFA,它接受=a,b上所有包含ab的字符串。三、 (6分)写一个文法使其语言为L(G)=anbncm| m,n1,n为奇数,m为偶数。四、 (8分)对于文法G(S):1. 写出句型b(Ma)b的最右推导并画出语法树。2. 写出上述句型的短语,直接短语和句柄。五、 (12分)对文法G(S):S a | | (T)T T,S | S(1) 构造各非终结符的FIRSTVT和LASTVT集合;(2) 构造算符优先表;(3

4、) 是算符优先文法吗?(4) 构造优先函数。六、 (8分)设某语言的do-while语句的语法形式为 S do S(1) While E其语义解释为:针对自下而上的语法分析器,按如下要求构造该语句的翻译模式,将该语句翻译成四元式:(1) 写出适合语法制导翻译的产生式;(2) 写出每个产生式对应的语义动作。七、 (10分)将语句while C0 do if A B=0 then C:=C+D else C:=C*D翻译成四元式。八、 (10分)设有基本块如下:T1:=3T2:=A*BT3:=9+T1M:=A*BT4:=C-DL:=T3*T4T2:=C+DN:=T21. 画出DAG图;2. 设L,

5、M,N 是出基本块后的活跃变量,请给出优化后的四元式序列。九、 (8分)文法G(S)及其LR分析表如下,请给出串baba#的分析过程。(1) S DbB (2) D d (3) D (4) B a (5) B Bba (6) B LR分析表ACTIONGOTObDa#SBD0r3s3121acc2s43r24r6S5r665r4r46s7r17S88r5r5(注:答案格式为 步骤 状态 符号 输入串)编译原理试题A (2003.12.4)一、 回答下列问题:(30分)1. (6分)对于下面程序段program test (input, output) var i, j: integer; pr

6、ocedure CAL(x, y: integer); begin y:=y*y; x:=x-y; y:=y-x end; begin i:=2; j:=3; CAL(i, j) writeln(j) end. 若参数传递的方法分别为(1)传值、(2)传地址,(3)传名,请写出程序执行的输出结果。答: (1) 3 (2) 16 (3) 16 (每个值2分)2. (6分)计算文法G(M)的每个非终结符的FIRST和FOLLOW集合,并判断该文法是否是LL(1)的,请说明理由。G(M):M TBT Ba | B Db | eT | D d | 解答:计算文法的FIRST和FOLLOW集合:(4分)

7、FIRST(M) = a,b,e,d, FIRST(T) = a,b,e,d, FIRST(B) = b,e,d, FIRST(D) = d,FOLLOW (M) = # FOLLOW (T) = a,b,e,d,#FOLLOW (B) = a,# FOLLOW (D) = b检查文法的所有产生式,我们可以得到:1. 该文法不含左递归,2. 该文法中每一个非终结符M,T,B,D的各个产生式的候选首符集两两不相交。3. 该文法的非终结符T、B和D,它们都有候选式,而且FIRST(T)FOLLOW(T)= a,b,e,d 所以该文法不是LL(1)文法。(2分)3. (4分)考虑下面的属性文法 产

8、生 式 语 义 规 则 SABC Aa Bb Cc B.u := S.u A.u := B.v + C.v S.v := A.v A.v :=3*A.u B.v := B.u C.v := 1 (3) 画出字符串abc的语法树;(4) 对于该语法树,假设S.u的初始值为5,属性计算完成后,S.v的值为多少。答:(1) (2分) (2) S.v的值为18 (2分)4. (4分)运行时的DISPLAY表的内容是什么?它的作用是什么?答:DISPLAY表是嵌套层次显示表。每当进入一个过程后,在建立它的活动记录区的同时建立一张嵌套层次显示表diaplay.假定现在进入的过程层次为i,则它的diapla

9、y表含有i+1个单元,自顶向下每个单元依次存放着现行层、直接外层、直至最外层(主程序,0层)等每层过程的最新活动记录的起始地址。通过DISPLAY表可以访问其外层过程的变量。5. (5分)对下列四元式序列生成目标代码: A:=B*CD:=E+AG:=B+CH:=G*D其中,H在基本块出口之后是活跃变量, R0和R1是可用寄存器。答: 目标代码序列LD R0 BMUL R0 CLD R1 EADD R1 R0LD R0 BADD R0 CMUL R0 R1ST R0 H6. (5分)写出表达式a+b*(c-d)对应的逆波兰式、三元式序列和抽象语法树。答:逆波兰式:(abcd-*+) (1分)三元

10、式序列: (2分) OP ARG1 ARG2 (1) - c d (2) * b (1) (3) + a (2)抽象语法树:(2分)二、 (8分)构造一个DFA,它接受=a,b上所有包含ab的字符串。答:(2分)构造相应的正规式:(a|b)*ab(a|b)*(3分) a a a b b b(3分)确定化:I0,1,21,2,31,21,2,31,2,31,2,4,5,61,21,2,31,21,2,4,5,61,2,3,5,61,2,5,61,2,3,5,61,2,3,5,61,2,4,5,61,2,5,61,2,3,5,61,2,5,6 b b b a a a a a a b b b 最小化

11、:0,1,2 3,4,50, 2,1, 3,4,5三、 (6分)写一个文法使其语言为L(G)=anbncm| m,n1,n为奇数,m为偶数。答:文法G(S):四、 (8分)对于文法G(S): 1. 写出句型b(Ma)b的最右推导并画出语法树。2. 写出上述句型的短语,直接短语和句柄。答:1. (4分) 2. (4分)短语: Ma), (Ma), b(Ma)b直接短语: Ma)句柄: Ma)五、 (12分)对文法G(S):S a | | (T)T T,S | S(1) 构造各非终结符的FIRSTVT和LASTVT集合;(2) 构造算符优先表;(3) 是算符优先文法吗?(4) 构造优先函数。答:(

12、1) (4分) (2) (4分)a(),a(=,(3) 是算符优先文法,因为任何两个终结符之间至多只有一种优先关系。 (1分)(4) 优先函数(3分)a(),F44244G55523六、 (8分)设某语言的do-while语句的语法形式为 S do S(1) While E其语义解释为:针对自下而上的语法分析器,按如下要求构造该语句的翻译模式,将该语句翻译成四元式:(1) 写出适合语法制导翻译的产生式;(2) 写出每个产生式对应的语义动作。答:(1). 适合语法制导翻译的文法(4分) G(S): R do UR S(1) While SU E (2). (4分) R do R.QUAD:=NX

13、Q UR S(1) While U.QUAD:=R.QUAD; BACKPATCH(S.CHAIN, NXQ) SU E BACKPATCH(E.TC, U.QUAD); S.CHAIN:=E.FC 答案二:(1) S do M1 S(1) While M2 E M (4分)(2) M M.QUAD := NXQ (4分) S do M1 S(1) While M2 E BACKPATCH(S(1).CHAIN, M2.QUAD);BACKPATCH(E.TC, M1.QUAD); S.CHAIN:=E. FC 七、 (10分)将语句while C0 do if A B=0 then C:=C

14、+D else C:=C*D翻译成四元式。答:100 (j, C, 0, 102)101 (j, -, -, 112)102 (jnz, A, -, 106)103 (j, -, -, 104)104 (j=, B, 0, 106)105 (j, -, -, 109)106 (+, C, D, T1)107 (:=, T1, -, C)108 (j, -, -, 100)109 (*, C, D, T2)110 (:=, T2, -, C)111 (j, -, -, 100)112 八、 (10分)设有基本块如下:T1:=3T2:=A*BT3:=9+T1M:=A*BT4:=C-DL:=T3*T

15、4T2:=C+DN:=T23. 画出DAG图;4. 设L,M,N 是出基本块后的活跃变量,请给出优化后的四元式序列。答:1. (6分) L * T2,M T4 T2,N * - + T1 T3 3 A B 12 C D2. (4分)M:=A*BS1:=C-DL:=12*S1N:=C+D九、 (8分)文法G(S)及其LR分析表如下,请给出串baba#的分析过程。(1) S DbB (2) D d (3) D (4) B a (5) B Bba (6) B LR分析表ACTIONGOTObDa#SBD0r3s3121acc2s43r24r6S5r665r4r46s7r17S88r5r5解答:步骤 状态 符号 输入串0 0 # baba#1 02 #D baba#2 024 #Db aba#3 0245 #Dba ba#4 0246 #DbB ba#5 02467 #DbBb a#6 024678 #DbBba #7 0246 #DbB #8 01 #S # acc

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2