编译原理第3阶段测试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 →ε
答: