优化和目标代码生成-Read.pptVIP

  • 0
  • 0
  • 约4.66千字
  • 约 31页
  • 2019-06-18 发布于天津
  • 举报
编译原理 优化和目标代码生成(2h) 主讲:王海文 2005-2007 7.2 运行时的内存分配 编译程序需要为源程序中的数据分配执行时的存储空间,编译程序从操作系统中申请编译程序计算出的所需的内存,或编译程序生成在运行时需申请内存的指令。 (1) 确定用来表示某一数据项的内存大小。 (2) 使用适当的内存分配策略,实现具体数 据的作用域和生存期。 (3) 确定以适当的算法访问生存期内的数据,包括基本型数据结构构造类型。 为目标程序分配执行时所需的存储空间:    一种是在目标程序运行前,由编译程序为数据结构分配存储空间,在程序的执行期间不再分配和解除这种内存分配。叫做静态存储分配。    一种在程序运行期间均可以对内存实现分配或解除分配,一旦存储分配解除该存储空间内的数据便失去意义。叫做动态存储分配。 代码优化在整个编译过程的位置 设计和实现编译程序代码优化的原则: (1)等价原则:经过优化后的代码应该保持程序的输入输出,不应改变程序运行的结果。 (2)有效原则:优化后的代码应该在占用空间、运行速度这两个方面,或者其中的一个方面得到改善。 (3)经济原则:代码优化需要占用计算机和编译程序的资源,代码优化取得的效果应该超出优化工作所付出的代价。否则,代码优化就失去了意义。 例: int arr[10000]; void Binky() { int i; for (i=0; i

文档评论(0)

1亿VIP精品文档

相关文档