不考大题

嵌套过程非局部量引用

嵌套过程语言(如 Pascal)允许过程内嵌套定义过程,内层过程可引用外层过程的变量。

  • 指向直接外层过程的最近活动 AR
  • 沿 SL 链逐层查找可访问外层非局部变量
  • 查找深度 = 嵌套层次差
  • 每次过程调用时确定 SL 值(静态嵌套关系)
  • 指向调用者的 AR(即返回后应恢复的栈帧)
  • 用于过程返回时恢复调用者的栈环境
  • 与控制流相关,与静态嵌套无关

重点 SL(静态链)用于访问非局部变量,沿静态嵌套层次查找。

Display 表(嵌套层次显示表)

目的:加速非局部变量访问,避免逐层查 SL 链。

  • 数组 存放第 层最新活动的 AR 地址
  • 访问嵌套深度为 的变量时直接取 ,无需逐层查找
  • 过程进入/退出时维护 Display 表

堆分配

  • malloc/free(C)、new/delete(C++)
  • 程序运行中动态申请/释放
  • 栈区与堆区通常相向生长