第十章 目标程序运行时的组织;概述;目标代码区:
存放目标代码,即编译时能确定的;
静态数据区:
存放编译时能确定所占空间的数据;
堆栈区:
存放可变数据及管理过程活动的控制信息;5、术 语;10.1 数据空间的三种不同使用方法和管理方法;10.1.3 栈式动态分配
1、整个程序的数据空间设计为一个栈:
符合“先申请后释放,后申请先释放”的原则
—调用过程时,所需的数据空间分配到栈顶
—退出过程时,释放其所占的栈顶空间,恢复调用者现场并继续运行
2、过程所需的数据空间
—数据对象:局部变量,参数单元,临时变量等
—过程活动记录信息:当前机器状态信息,程序计数器,寄存器值等
10.1.4堆式动态存储分配
有些语言允许用户自由地申请和释放空间,必须使用堆式存储结构,未必遵从先进先出,后进先出原则。
如:free(), new , dispose等
;一、过程的活动记录(AR):
一个过程的一次执行所需要的信息使用一个连续的存储区来管理,这个区(块)叫做一个活动记录;10.2.1 简单的栈式分配的实现;若语言允许可变数组,则其活动记录内容如上。; ; 10.2.2 嵌套过程语言的栈式实现; ;二.静态链表(PL/0)
以PL/0为例:
const a=10;var b,c;procedure p; beg
原创力文档

文档评论(0)