第10章-目标程序运行时的存储组织.ppt

第10章-目标程序运行时的存储组织.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第10章目标程序运行时的存储组织

10.1概述10.2简单的栈式存储分配方案10.3嵌套过程的栈式存储分配方案10.4分程序结构的存储分配方案10.5参数传递10.6过程调用、进入和返回概述源文件中的名字N?运行时的存储位置S运行时的存储位置S?运行时的值V在语义学中,使用术语environment函数表示env:N→S(N到S的映射)术语静态:如果一个名字的性质通过说明语句或隐或显规则而定义,则称这种性质是“静态”确定的。动态:如果名字的性质只有在程序运行时才能知道,则称这种性质为“动态”确定的。例procedureA(m,n:integer);beginrealz;arrayB[m:n];begin···end;end;目标程序运行时的存储组织存储分配策略:静态存储分配:编译时可确定运行所需空间大小动态存储分配——栈式:简单的栈式分配方案嵌套过程的栈式分配方案分程序结构的存储分配方案——堆式:允许用户自由申请和退还空间、有进程栈式存储分配的实现使用栈式存储分配策略意味着,运行时每当进入一个过程,就在栈顶为该过程的临时工作单元,局部变量,机器状态及返回地址等信息分配所需的数据空间,当一个过程工作完毕返回时,它在栈顶的数据空间也即释放。简单的栈式分配方案

程序结构特点:过程定义不嵌套,过程可递归调用,无分程序,含可变数组;例:main全局变量的说明procR……endR;procQ……endQ;主程序执行语句endmain嵌套过程语言的栈式

分配方案

主要特点:(语言)一个过程可以引用包围它的任一外层过程所定义的标识符(如变量,数组或过程等)。(实现)一个过程可以引用它的任一外层过程的必威体育精装版活动记录中的某些数据。关键技术:解决对非局部量的引用(存取)。设法跟踪每个外层过程的必威体育精装版活动记录AR的位置。跟踪办法:1.用静态链(如PL/0的SL)。2.用DISPLAY表。第一种方法-----静态链在过程活动记录中增设静态链(存取链),指向包含该过程的直接外层过程的必威体育精装版活动记录的起始位置。目标代码解释执行时数据栈的布局(运行栈的存储分配)每个过程的AR有3个联系单元:SL:静态链,指向定义该过程的直接外过程 (或主程序)运行时必威体育精装版数据段的基地址。DL:动态链,指向调用该过程前正在运行过 程的数据段基地址。RA:返回地址,记录调用该过程时目标程序的断点,即调用过程指令的下一条指令的地址。第二种方法-----Display表Display表---嵌套层次显示表当前激活过程的层次为K,它的Display表含有K+1个单元,依次存放着现行层,直接外层…直至最外层的每一过程的必威体育精装版活动记录的基地址用Display表的方案(1)主程序---(2)P---(3)Q---(4)R用Display表的方案主程序---P---Q---R为了解决上述问题,可采取两种措施。第一,对每个过程或分程序都建立有自己的栈顶指示器TOP,代替原来仅有过程的栈顶指示器,每个TOP的值保存在各自活动记录中。这样,上述的第二个问题便可解决。第二,不把分程序看作“无参过程”,每个分程序享用包围它的那个最近过程的DISPLAY。每个分程序都隶属于某个确定的过程,分程序的层次是相对于它所属的那个过程进行编号的。(1)programreferen

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档