编译原理分知识点习 代码优化.docVIP

  • 124
  • 0
  • 约2.76万字
  • 约 14页
  • 2016-08-22 发布于贵州
  • 举报
编译原理分知识点习 代码优化

1.与机器有关的代码优化有那些种类,请分别举例说明。 解答:与机器有关的优化有:寄存器优化,多处理优化,特殊的指令优化,无用的指令消除等四类。 冗余指令删除 假设源程序指令序列 a:=b+c; c:=a-d; 编译程序为其生成的代码很可能是下列指令序列: MOV b, R0 ADD c, R0 MOV R0,a SUB d, R0 MOV R0,c 假如第四条指令没有标号,上述两个赋值语句在一个基本块内,则第四条指令是多余的,可删除。 特殊指令的使用 例如,如果目标机器指令系统包含增1指令INC,对于i:=i+1的目标代码 MOV i, R0 ADD #1, R0 MOV R0, i 便可被代之以1条指令 Inc i 说明:优化的特点是每个改进可能会引发新的改进机会,为了得到最好的改进,一般可能需要对目标代码重复扫描进行优化。 2.设有语句序列 a:=20 b:=a*(a+10); c:=a*b; 试写出合并常量后的三元式序列。 解答:该语句序列对应的三元式序列为: (1) (:=, 20,a) (2) (+, a, 10) (3) (*, a, (2) ) (4) (:=, a, b) (5) (* a, b) (6) (:=, (5), c) 合并常量后的三元式序列为: (:=, 20,a) (:=, 600, b)

文档评论(0)

1亿VIP精品文档

相关文档