运行时存储组织和管理.pptVIP

  • 6
  • 0
  • 约7.47千字
  • 约 42页
  • 2018-09-05 发布于湖北
  • 举报
编译原理 运行时的存储组织及管理 运行时的存储组织及管理 概述 存储组织 运行时的存储分配策略 静态存储分配 动态存储分配 对非局部名字的访问 参数传递 有关源程序中的一些问题 问题的提出:如何构造运行程序的策略和方法 过程 活动树 控制栈 说明的作用域 名字的绑定 名字与存储的绑定 存储组织 运行时刻内存的划分:假定编译器从操作系统得到一块存储区,运行时的存储空间要划分成块: 生成的目标代码; 数据对象; 记录过程活动的控制栈 对应的数据结构 运行时刻存储分配策略 分配策略是: 静态分配; 栈式分配,或称栈式动态分配; 堆式分配,或称堆式动态分配。 采用哪种分配策略是由源语言的语义决定的。 栈式存储分配 基于控制栈的原理:? 存储空间被组织成栈,活动记录的推入和弹出分别对应于活动的开始和结束。 与静态分配不同的是,在每次活动中把局部名字和新的存储单元绑定,在活动结束时,活动记录从栈中弹出,因而局部名字的存储空间也随之消失。 当控制流通过图6.3的活动树时活动记录被推人或弹出运行时刻的栈中的情况,设寄存器top标记栈顶。 栈式存储分配 确定活动记录中局部数据的地址: 假设top-sp标记一个活动记录的开始的位置,dx表示x的地址相对于top-sp的偏移量。那么,x在过程的目标代码中的地址可写成dx(top-sp) 在运行时刻,当把x的活动记录筑于栈顶时,寄存器top-

文档评论(0)

1亿VIP精品文档

相关文档