第六章运行时存储空间的组织和管理-Read.doc

第六章运行时存储空间的组织和管理-Read.doc

PAGE  PAGE 29 第六章 运行时存储空间的组织和管理 在这一章,我们把过程和函数这样的程序单元统称为过程,运行时过程的一次执行称为过程的一次活动,过程的每次调用引起它的一个活动。过程的活动需要可执行代码和存放所需信息的存储空间,后者通常用一块连续的存储区来管理,称为活动记录。在考虑代码生成之前,我们需要把静态的程序正文和运行时的活动联系起来,考察名字和数据对象之间的关系。我们在本章不仅要讨论一个活动记录中的数据安排,还有讨论一个程序执行过程中,所有活动记录的组织方式。 由于过程可以递归,在程序运行中某一时刻,可能有多个活跃着的活动与一个过程对应。因此递归过程中的一个变量可以表示目标机器上不同的数据对象,虽然某一时刻,只有一个这样的对象是可访问的。这是一个影响存储分配策略的重要语言特征。影响存储分配策略的语言特征有如下一些: (1)过程能否递归; (2)当控制从过程的活动返回时,局部变量的值是否要保留; (3)过程能否访问非局部变量; (4)过程调用的参数传递方式; (5)过程能否作为参数被传递; (6)过程能否作为结果值传递; (7)存储块能否在程序控制下动态地分配; (8)存储块是否必须显式地释放。 语言编译器组织运行时的存储空间和把名字绑定到数据单元的方式,在很大程度上取决于对上述问题的回答,也是本章的讨论中重点要解决的问题。 6.1 局部存储

文档评论(0)

1亿VIP精品文档

相关文档