- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运行环境-.ppt
* 5.3 栈式动态分配 若嵌套深度为np的过程p 引用嵌套深度为na(na≤np)的变量a,则a的活动记录的访问链地址可以在d[na]中找到,访问非本地变量a的地址信息表示为:(na, Δa) 访问S中的a: dsp=d[1] Δa[dsp] * 5.3 栈式动态分配 如何生成与维护显示表及其访问链 在沿访问链追踪的访问模式中,访问链只需建立,无需撤销,因为活动记录的撤销自然也撤销了访问链。 若采用显示表方式,则当进入和退出活动时,均需对显示表进行维护,以保证对非本地数据的正确访问(弱点)。 活动记录中访问链的右值: 访问链方式:指向最新直接外层活动记录的sp 显示表方式:指向同层次的次新活动记录的sp 调用时: 将d[i]的值保存在新活动记录的访问链中; 置d[i]为新的活动记录。 返回时: 恢复d[i]原来的值,即上述1的逆操作 作业 P259 5.5 * * 5.4 本章小结 本章介绍程序运行时的空间组织,重点是讨论如何通过对过程的静态分析(包括符号表的使用)建立运行环境,以保证程序的正确执行。 过程的动态特性 过程、活动、生存期、控制流; 活动树、控制栈、活动记录; 名字的绑定、环境与状态; 运行时的存储空间组织 内存划分:可执行代码、静态数据区、栈、堆; 活动记录的内容:参数与返回值、控制链、访问链、机器状态、本地数据、临时变量等。 * 5.4 本章小结 不同的存储分配策略 静态分配:绑定是静态的 栈分配:基于控制栈自动管理内存 堆分配:根据要求从堆数据区动态地分配和释放内存 栈分配策略 调用序列与返回序列; 控制链与访问链:控制链用于活动记录的正确切换,体现活动调用关系;访问链用于访问非本地数据,体现过程嵌套关系; 访问链的实现:访问链、显示表; * 第五章 运行环境 源程序最终需要运行,因此需要了解:与源程序等价的目标程序如何在内存中运行,为了程序的正确运行需要什么样的支持。 不同的源语言结构,所需的运行环境和支持不同。本章仅以最简单的、基于过程的、顺序执行的程序为前提讨论,即源程序的基本结构是顺序执行的过程,过程与过程之间仅通过子程序调用的方式进行控制流的转移。 讨论内容: 静态的过程运行时具有什么样的动态特性; 运行时需要什么样的环境支持(存储空间分配); 过程之间的调用与返回应如何实现等。 * 5.1 过程的动态特性 过程与活动 过程、活动、生存期 过程的每一次运行称为一次活动(activation)。活动是一个动态的概念,它有有限的生存期(life time)。 定义5.1 活动的生存期是指从进入活动的第一条指令执行到离开此活动前的最后一条指令执行的这段时间,其中包括调用其它过程时其它活动的生存期。 活动之间的通信 子程序调用:call/return,有去必有回 顺序调用:生存期不交 嵌套调用:生存期嵌套 消息传递:send/receive,可有去无回 * 5.1 过程的动态特性 顺序执行程序的控制流 特点:程序的执行在时间上是顺序的和排他的。即在程序执行的任一瞬间,有且仅有一个活动正在活动。 控制流满足: 控制流是连续的; 过程间的控制流可以用树来表示。 活动树 定义5.2 描绘控制进入和离开活动方式的树结构被称为活动树 每个结点代表过程的一个活动; 根代表主程序的活动; 结点a是b的父亲,当且仅当控制流从a的活动进入b的活动 结点a处于b的左边,当且仅当a的生存期先于b的生存期。 * 5.1 过程的动态特性 [例5.1] P244 [例5.2] 活动树的实质是反映了顺序执行程序的调用和时序关系,它把每个活动的生存期缩小到了一点。 * 5.1 过程的动态特性 控制栈与活动记录 控制流与活动树的关系 程序控制流:一个完整程序的控制流恰好是对它活动树的一次深度优先遍历。 活动树上各节点之间具有下述关系: 同一层次的活动生存期不交 任一时刻,处在生存期的活动构成一条从根到某节点的路径 路径上各节点生存期是嵌套的 控制栈与活动记录 控制栈:保存所有在生存期的活动(一条后进先出的路径)。 活动记录: activation record,栈中的每个元素称为一个活动记录,为活动提供的活动场所。 * 5.1 过程的动态特性 活动记录中至少应该存放两类信息: 控制信息:控制活动的正确调用与返回和控制活动记录的正确切换; 访问信息:用于为当前活动提供对数据,如本地数据和非本地数据的访问。 [例5.2] 快排序程序运行时某状态的控制栈 控制栈保存了任何时刻所有在生存期活动的活动记录 控制栈的一个状态 生存期 正在运行 * 5.1 过程的动态特性 名字的绑定 名字的绑定 定义5.3 运行时为名字X分配存储空间S,这一过程称为绑定(binding)。 换句话说,绑定是名字X与存储空间S的结
您可能关注的文档
最近下载
- 2022年ECR ECN基础知识ppt课件.pptx VIP
- 2025年实验动物从业人员上岗证试题库+答案.docx
- 庄周梦蝶原文课件.pptx VIP
- 卧式储罐安装施工方案.docx VIP
- 二零二五版特种电缆定制与研发合作合同.docx
- 生长发育迟缓的诊断与干预.docx VIP
- 佳能 iC MF645Cx 645 彩色激光打印机中文维修手册.pdf VIP
- T_ZGCMITT 006.2-2022 介入诊疗服务质量评价 第2部分:介入诊疗技术规范.docx VIP
- SL 285-2020 水利水电工程进水口设计规范.pdf
- 2025年广州市花都区人民医院医护人员招聘备考试题及答案解析.docx VIP
文档评论(0)