编译原理第3阶段测试题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

考试科目:《编译原理》第8章至第10章(总分100分)

一、选择与填充(30)

1. 四元式之间的联系是通过( B )来实现的。

A.指示器 B.临时变量 C.符号表 D.程序变量

2. 优化可生成( D )的目标代码。

A. 运行时间较短

B. 运行时间短但占用内存空间大

C. 占用存储空间较小

D. 运行时间短且占用存储空间小

3. 下列( C )优化方法不是针对循环优化进行的。

A. 强度削弱 B.删除归纳变量 C.删除多余运算 D.代码外提

4. 在目标代码生成阶段,符号表用于( D )。

A.目标代码生成 B.语义检查 C.语法检查 D.地址分配

5.语法分析是依据语言的___语法__规则进行的,中间代码产生是依据语言的___语义__规进行的。

6.优化可分为局部优化、__循环优化___和全局优化三种。

二、写出表达式A*(B/C-D)+E/F的逆波兰中间代码。(15)

答:ABC/D.*EF/+

三、什么是活动记录?它主要由哪些内容构成?(15)

答:一个过程的一次执行所需信息的管理,是通过称为活动记录的连续存储块来实现的,活动记录的主要内容有:

1、临时变量域,存放目标程序临时变量的值;

2、局部数据域,存放过程本次执行时的局部数据、简单变量及数组内情向量等;

3、机器状态域,保存在调用过程前有关机器状态的信息,包括各寄存器的当前值及返回地址等;

4、存取链,为访问其它活动记录中所存放的非局部数据所提供的链地址;

5、控制链,指向主调过程的活动记录;

6、实参,存放主调过程为被调用过程所提供的实参信息;

7、返回值,为主调过程存放被调过程的返回值;

四、试写出算术表达式a+b*c-(c*b+a-e)/(b*c+d)优化后的四元式序列。(15)

五、文法G[M]及其LR分析表如下,请给出对串dada#的分析过程。(30)

G[M]: 1) S →VdB2) V →e

3) V →ε 4) B →a

5) B →Bda 6) B →ε

答:

相关文档
最新文档