第九章 运行时存储空间组织bfex.pptx
《第九章 运行时存储空间组织bfex.pptx》由会员分享,可在线阅读,更多相关《第九章 运行时存储空间组织bfex.pptx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章 运行时存储空间组织 编译程序的最终目的是将源程序翻译成等价的目标程序。为了达到此目的,除了进行词法、语法、语义分析外,在生成目标代码之前,需要把程序静态的正文和实现这个程序运行时的活动联系起来,以便弄清楚将来在代码运行时,源程序中的各个变量、常量等用户定义的量是如何存放的,如何去访问它。在程序的运行过程中,程序中数据的存取是通过与之对应的存储单元来进行的。9.1 目标程序运行时的活动9.1.1 过程的活动 先讨论一个过程的静态源程序和它的目标程序在运行时的活动之间的关系。过程定义仅仅是一个说明;而过程调用是过程体的一次执行。过程的活动:是指该过程的一次执行。即每次执行一个过程体,就产生
2、该过程体的一个活动。一个活动的生存期:指从执行该过程体的第一步操作到最后一步操作之间的这段时间。活动之间的关系一个过程是递归的:如果该过程在还没有退出当前的活动时,又开始了它的一次新的活动。即在某个时刻,可能有该过程的几个活动在活跃着。如果 a 和 b 是两个过程的活动,则它们的生存期或者是不重叠的,或者是嵌套的。9.1.2 参数传递如何将实际参数传递给相应的形式参数?传地址(call by reference)传值(call by value)传名(call by name)/宏 复制-恢复(copy-restore)/得结果9.2 运行时存储器的划分9.2.1 运行时存储器的划分 目标代码
3、 静态数据 栈 堆管理过程的活动存放动态数据9.2.2 活动记录 为了管理过程在一次执行中所需要的信息,使用一个连续的存储块,这个存储块就称为活动记录。用一个活动记录表示该活动的相关信息,并将其压入栈。临时单元 内情向量 局部变量 形式单元 静态链 动态链 返回地址SPTOP活动记录的大小在编译时可确定。9.2.3 存储分配策略 不同的编译程序关于数据空间的存储分配策略可能不同。常用的存储分配策略有:静态分配策略 栈式动态分配策略 堆式动态分配策略 由关于名称的作用域和生成期的定义规则决定。9.3 静态存储分配 如果在编译时就能确定一个程序在运行时所需的存储空间的大小,则在编译时就能够安排好目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九章 运行时存储空间组织bfex 第九 运行 存储空间 组织 bfex
限制150内