编译原理复习笔记 第七章 运行存储分配 更新中
7-1 概述
- 在编译时刻就可以确定大小的数据对象,可以在编译时刻就为他们分配存储空间,这样的分配称为静态存储分配策略。
反之,编译时刻不能确定大小的数据对象,采用动态分配。 - 栈式存储分配
堆式存储分配 - 活动记录:一个活动一个存储区
7-2 静态存储分配
-
适合静态存储分配的语言:
(1)数组上下界是实数
(2)不允许过程的递归调用
(3)不允许动态建立数据实体 -
常用的静态存储分配方法:顺序分配 层次分配
-
顺序分配法:按照过程出现的先后顺序分配存储单元
-
层次分配法:无调用关系的并列过程,尽量使其局部数据共享存储空间
-
层次分配算法矩阵:
7-3 栈式存储分配
- 活动树
- 设置活动记录的一些原则:
7-4 调用序列和返回序列
过程调用和过程返回都需要执行代码来管理活动记录栈,保存、恢复机器状态
- 调用序列:实现过程调用的代码段
- 返回序列:恢复机器状态,使调用过程能在调用结束后继续执行