liu-第八章目标程序运行时的存储组织.pptVIP

  • 2
  • 0
  • 约1.02万字
  • 约 62页
  • 2019-11-22 发布于广东
  • 举报

liu-第八章目标程序运行时的存储组织.ppt

第八章 目标程序运行时的存储组织 本章主要讨论运行阶段的存储组织以及分配的两种方式:静态存储分配与动态存储分配,依据不同的特点可分别采用两种分配方式中的一种或将两者结合起来使用。 在代码生成之前,编译程序必须进行目标程序运行环境的设计和数据空间的分配。 编译程序为了组织存储空间,必须考虑下面几个问题: 过程是否允许递归? 当控制从一个过程的活动返回时,对局部名称的值如何处理? 过程是否允许引用非局部名称? 过程调用时如何传递参数;过程是否可以做为参数被传递和做为结果被返回? 存储空间可否在程序控制下进行动态分配? 存储空间是否必须显式地释放? 一个目标程序运行所需的存储空间包括: 存放目标代码的空间 存放数据项目的空间 存放程序运行的控制或连接数据所需单元(控制栈) 一个程序在运行时刻的内存划分: 所谓数据空间的分配,本质上看,是将程序中的每个名字与一个存储位置关联起来,该存储位置用以容纳名字的值。 编译程序分配目标程序运行时的数据空间的基本依据是,程序设计语言对程序运行中存储空间的使用和管理办法的规定。 一 存储分配策略 静态分配策略(FORTRAN) 如果在编译时能确定数据空间的大小,则可采用静态分配方法:在编译时刻为每个数据项目确定出在运行时刻的存储空间中的位置。 动态分配策略(PASCAL) 如果在编译时不能确定运行时数据空间的大小,则必须采用

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档