编译器笔记41-运行存储分配-调用序列和返回序列
2020-03-09 本文已影响0人
衣忌破
调用序列和返回序列
过程调用和过程返回都需要执行一些代码来管理活动记录栈,保存或恢复机器状态等。
- 调用序列
实现过程调用的代码段。为一个活动记录在栈中分配空间,并在此记录的字段中填写信息。 - 返回序列
恢复机器状态,使得调用过程能够在调用结束之后继续执行。 - 一个调用代码序列中的代码通常被分割到调用过程(调用者)和被调用过程(被调用者)中。返回序列也是如此。
调用序列
调用序列.png返回序列
返回序列.png调用者和被调用者之间的任务划分
调用者和被调用者之间的任务划分.png变长数据的存储分配
-
在现代程序设计语言中,在编译时刻不能确定大小的对象将被分配在堆区。但是,如果它们是过程的局部对象,也可以将它们分配在运行时刻栈中。尽量将对象放置在栈区的原因:可以避免对它们的空间进行垃圾回收,也就减少了相应的
-
只有一个数据对象局部于某个过程 ,且当此过程结束时它变得不可访问,才可以使用栈为这个对象分配空间。