编译原理复习笔记 第七章 运行存储分配 更新中

7-1 概述

  1. 在编译时刻就可以确定大小的数据对象,可以在编译时刻就为他们分配存储空间,这样的分配称为静态存储分配策略。
    反之,编译时刻不能确定大小的数据对象,采用动态分配。
  2. 栈式存储分配
    堆式存储分配
  3. 活动记录:一个活动一个存储区
  4. 编译原理复习笔记 第七章 运行存储分配 更新中

7-2 静态存储分配

  1. 适合静态存储分配的语言:
    (1)数组上下界是实数
    (2)不允许过程的递归调用
    (3)不允许动态建立数据实体

  2. 常用的静态存储分配方法:顺序分配 层次分配

  3. 顺序分配法:按照过程出现的先后顺序分配存储单元
    编译原理复习笔记 第七章 运行存储分配 更新中

  4. 层次分配法:无调用关系的并列过程,尽量使其局部数据共享存储空间
    编译原理复习笔记 第七章 运行存储分配 更新中

  5. 层次分配算法矩阵:
    编译原理复习笔记 第七章 运行存储分配 更新中

7-3 栈式存储分配

  1. 活动树
  2. 设置活动记录的一些原则:
    编译原理复习笔记 第七章 运行存储分配 更新中

7-4 调用序列和返回序列

过程调用和过程返回都需要执行代码来管理活动记录栈,保存、恢复机器状态

  1. 调用序列:实现过程调用的代码段
  2. 返回序列:恢复机器状态,使调用过程能在调用结束后继续执行