编译原理试题A (含答案)

编译原理试题A (含答案)

ID:35574827

大小:167.00 KB

页数:13页

时间:2019-03-29

编译原理试题A (含答案)_第1页
编译原理试题A (含答案)_第2页
编译原理试题A (含答案)_第3页
编译原理试题A (含答案)_第4页
编译原理试题A (含答案)_第5页
资源描述:

《编译原理试题A (含答案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理试题A(2003.12.4)一、回答下列问题:(30分)1.(6分)对于下面程序段programtest(input,output)vari,j:integer;procedureCAL(x,y:integer);beginy:=y*y;x:=x-y;y:=y-xend;begini:=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

3、eB→Db

4、eT

5、eD→d

6、e3.(4分)考虑下面的属性文法产生式语义规则S→ABCA→aB→bC→cB.u:=S.uA.u:=B.v+C.vS.v:=A.vA.v:=3*A.uB.v:=B.uC.v:=1(1)画出字符串abc的语法树;(2)对于该语法树,假设S.u的初始值为5,属性计算完成后,S.v的值为多少?4.(4分)运行时的DISPLAY表的内容是什么?它的作用是什么?5.(5分)对下列四元式序列生成目标代码:13A:=B*CD:=E+AG

7、:=B+CH:=G*D其中,H在基本块出口之后是活跃变量,R0和R1是可用寄存器。1.(5分)写出表达式a+b*(c-d)对应的逆波兰式、三元式序列和抽象语法树。一、(8分)构造一个DFA,它接受S={a,b}上所有包含ab的字符串。二、(6分)写一个文法使其语言为L(G)={anbncm

8、m,n≥1,n为奇数,m为偶数}。三、(8分)对于文法G(S):1.写出句型b(Ma)b的最右推导并画出语法树。2.写出上述句型的短语,直接短语和句柄。四、(12分)对文法G(S):S→a

9、^

10、(T)T→T,S

11、S(1)构造各非

12、终结符的FIRSTVT和LASTVT集合;(2)构造算符优先表;(3)是算符优先文法吗?(4)构造优先函数。五、(8分)设某语言的do-while语句的语法形式为S®doS(1)WhileE其语义解释为:真假S(1)的代码E的代码13针对自下而上的语法分析器,按如下要求构造该语句的翻译模式,将该语句翻译成四元式:(1)写出适合语法制导翻译的产生式;(2)写出每个产生式对应的语义动作。一、(10分)将语句whileC>0doifAÚB=0thenC:=C+DelseC:=C*D翻译成四元式。二、(10分)设有基本块如

13、下:T1:=3T2:=A*BT3:=9+T1M:=A*BT4:=C-DL:=T3*T4T2:=C+DN:=T21.画出DAG图;2.设L,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#SBD0r3s3121acc2s43r24r6S5r665r4r46s7r17S88r5r513(注:答案格式为步骤状态符号输入串)1

14、3编译原理试题A(2003.12.4)一、回答下列问题:(30分)1.(6分)对于下面程序段programtest(input,output)vari,j:integer;procedureCAL(x,y:integer);beginy:=y*y;x:=x-y;y:=y-xend;begini:=2;j:=3;CAL(i,j)writeln(j)end.若参数传递的方法分别为(1)传值、(2)传地址,(3)传名,请写出程序执行的输出结果。答:(1)3(2)16(3)16(每个值2分)2.(6分)计算文法G(M)的每

15、个非终结符的FIRST和FOLLOW集合,并判断该文法是否是LL(1)的,请说明理由。G(M):M→TBT→Ba

16、eB→Db

17、eT

18、eD→d

19、e解答:计算文法的FIRST和FOLLOW集合:(4分)FIRST(M)={a,b,e,d,e}FIRST(T)={a,b,e,d,e}FIRST(B)={b,e,d,e}FIRST(D)={d,e}FOLLOW(M)={#}FOLLOW(T)={a,b,e,d,#}FOLLOW(B)={a,#}FOLLOW(D)={b}检查文法的所有产生式,我们可以得到:131.该文法不含

20、左递归,2.该文法中每一个非终结符M,T,B,D的各个产生式的候选首符集两两不相交。3.该文法的非终结符T、B和D,它们都有e候选式,而且FIRST(T)∩FOLLOW(T)={a,b,e,d}≠f所以该文法不是LL(1)文法。(2分)1.(4分)考虑下面的属性文法产生式语义规则S→ABCA→aB→bC→cB.u:=S.uA.u:=B.v+C.vS.v:=A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。