编译原理优化和目标代码生成-Read.ppt
编译原理优化和目标代码生成(2h);第七章 优化和目标代码生成;7.1 编译程序考虑的因素;7.1.1 数据类型;7.1.2 数据结构;7.1.3 作用域规则;7.1.4 控制结构;7.2 运行时的内存分配;为目标程序分配执行时所需的存储空间:
一种是在目标程序运行前,由编译程序为数据结构分配存储空间,在程序的执行期间不再分配和解除这种内存分配。叫做静态存储分配。
一种在程序运行期间均可以对内存实现分配或解除分配,一旦存储分配解除该存储空间内的数据便失去意义。叫做动态存储分配。;宗旨:;代码优化在整个编译过程的位置;设计和实现编译程序代码优化的原则:
(1)等价原则:经过优化后的代码应该保持程序的输入输出,不应改变程序运行的结果。
(2)有效原则:优化后的代码应该在占用空间、运行速度这两个方面,或者其中的一个方面得到改善。
(3)经济原则:代码优化需要占用计算机和编译程序的资源,代码优化取得的效果应该超出优化工作所付出的代价。否则,代码优化就失去了意义。;例:;优化分类;程序的执行效率是可以通过在编译期间进行优化变换,不改变语义重写程序段以提高程序的工作效率。虽然变换的方法很多,但是常用的大致有以下几种:
1 编译求值
2 合并预算
3 删除死码
4 减少频率
5 强度削弱和变换循环条件
6 减少重写传播;局部优化: 所需要的开销相对较低,因此从优化所得到的收益
原创力文档

文档评论(0)