如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第十章目标程序运行时的组织概述概述决定运行管理复杂程度的因素——源语言本身术语数据表示各种数据对象的存储分配数据表示(固定长度,直接或间接表示)l目标程序运行时的存储组织l简单的栈式分配方案嵌套过程语言的栈式分配方案consta=10;varb,c;procedurep;beginc:=b+a;end;beginread(b);whileb#0dobegincallp;write(2*c);read(b);endend.目标代码解释执行时数据栈的布局(运行栈的存储分配)目标代码的解释执行运行栈S解决对非局部量的引用(存取)用Display表用Display表的方案用Display表的方案DISPLAY表的维护和建立当过程的层次为n,它的display为n+1个值。一个过程被调用时,从调用过程的DISPLAY表中自下向上抄录n个SP值,再加上本层的SP值。全局DISPLAY地址分程序结构的存储分配方案:B参数传递传值的实现传地址的实现过程调用的四元式序列过程调用的四元式序列过程作为参数传递值结果传递名字传递建立内情向量,分配内存的目标代码赋值中数组元素的翻译结构(记录),抽象数据类型对象堆式动态存储分配C++的堆变量C++的堆对象使用new和delete的示例堆式动态存储分配堆式动态存储分配堆式动态储分配堆管理堆空间的管理策略堆式动态储分配的实现不同的情况应采用不同的方法。通常在选择时需考虑下列因素:用户的要求;请求分配量的大小分布;分配和释放的频率以及效率对系统的重要等等。减少碎片的技术空间的释放显式释放堆式分配和释放的C语言描述堆的自动管理-----隐式存储回收垃圾回收隐式存储回收—markandsweep算法回收过程面向对象的语言中的动态存储器实现对象C++中选择的方法