- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、只含半静态变量的栈式分配 仅允许递归调用 变量及活动记录长度可静态确定 一个单元可多次激活而有多个实例,每个活动记录是在单元每次激活时动态建立并与代码段建立绑定关系的 1.特点 2.处理方法 (1)current:表示当前活动记录的开始位置 (2)free:表示数据存储器下一个可用单元 (3)变量绑定于它在活动记录中的常数位移I 变量通过current变址访问 (4)A调用B时:在A活动记录的栈顶之上建立起绑定 于B的当前实例的活动记录 (5)从B返回时,释放其活动记录 3.动态连接和动态链 动态连接:A调用B时,B的活动记录中保存的A的活动记录地址 动态链:由动态连接组成的一个调用链 F G F E A A call E; E call F; F call G; G call F; ... ... ... ... ... 4.CALL P 的处理 返回地址 动态连接 返回地址 动态连接 A的活动记录 即将建立的 P的活动记录 current free A … CALL p … (1)保存返回地址 D[ free ] := ? (2)保存主调过程的current D[free + 1] := current (3)建立P的current current := free (4)调整free free := free + L (5)转子 ip := P的代码段首地址 CALL P 返回地址 动态链 返回地址 动态链 A的活动记录 P的活动记录 current free 进入过程P以后 5.RETURN语句的处理 (1)恢复free free := current (2)恢复主调过程的current current := D[current + 1] (3)返回 ip := D [free] 二、半动态变量的栈式分配 1. 活动记录内容 临时变量 返回指针 动态链接 静态链接 现场保护 参数个数 形式单元 局部变量 数组存储区 允许动态数组 2. 动态数组空间的分配 (1)编译时,分配内情向量表区,并产生在运行时动态建立内情向量和分配数组空间的指令。 (2)一个单元激活后(进入该单元),遇到动态数组说明时,调用上述指令(填内情向量,分配数组空间),并调整free := free + L 非局部环境的引用必须考虑变量的作用域 1. 静态作用域规则——最近嵌套规则 最外层单元为0层,若P是Q的直接外层, 则Q的层次 = P的层次 + 1 (1)嵌套的层次 三、允许过程嵌套定义的栈式分配 非局部环境引用规则 unit A; y: int; unit B; end B; y: int; unit C; end D; end C; …... unit D; …… …... end E; z: int; unit F; end G; unit G; x,y: int; …... …… …... unit E; z:=x+y; end F; …… …... end A; x: int; A B C D E F G (2)最近嵌套规则 (I)变量x在单元U1中被说明,则x的作用 域局部于U1,或称x在U1中是可见的 (II)变量x在U1中没有被说明,则x的作用域 是包围U1的说明了x的最小外层单元 2.动态作用域规则 最近活动规则 对非局部变量的引用:最近外层中说明的 动态作用域的最近外层:指的是动态调用外层 如A-E-F-G-F的调用序列:当前F的调用外层为G 对非局部环境的引用 1. 静态作用域规则 对非局部变量,引用的应是最近的“嵌套外层”中说明的变量 静态连接: 指向嵌套直接外层的最新活动记录的指针,它处于活动记录位移为2的存储单元中 静态链: 各嵌套程序单元的活动记录中,静态连接的序列构成一个静态链 (1)静态连接和静态莲 返回地址 动态链 current free 静态链 CALL P 内容回顾 1.静态分配 2.栈式分配 3.堆分配 变量与存储区域的绑定关系在编译时便可建立,并完成存储分配 当一个程序单元被激活时, 在栈顶分配其活动记录;当程序单元退出时,在栈顶将其活动记录撤销 动态变量的首地址、长度、类型等在编译时无法确定,在执行过程中也可能改变 内容回顾 1.静态分配 2.栈式分配 3.堆分配 分配方式 递归调用 动态数组 过程嵌套定义 只含半静态变量的栈式分配 返回地址 current free 动态链接 。。。。 CALL P D[ free ] := IP+5 D[free + 1] := current current := free free := free + L ip :=
您可能关注的文档
- 大学生社会支持、心理资本与职业决策效能感的关系.ppt
- 大连海事大学《现代优化技术》第5讲:传统启发式算法之构筑法.ppt
- 大学生音乐欣赏课件第二章音乐的构成要素.pptx
- 财务管理学教学资料盈利能力分析.ppt
- 材料成形装备及自动化第3章-3.6.1-6.ppt
- 第三课it新城:班加罗尔.ppt
- 材料成形装备及自动化第3章-3.8.ppt
- 大连海事大学刘巍高等运筹第十四讲.ppt
- 八年级地理课件辽阔的疆域(一).ppt
- 创新信用融资工具拓展投融资渠道多样化.pptx
- 北京邮电大学《高等数学》第08章-4节三重积分-直角坐标系.ppt
- 测试技术前言ptt1web测试.ppt
- 程序设计基础(徐明星)w06-chap06-[数据组织一]-递推思想-数组定义-字符数组-part1.ppt
- 大学物理课件汇编-ch7567上课用第二次2011.ppt
- 材料力学(赵振伟)梁的应力1.ppt
- 程序设计基础(徐明星)w02-3-chap03-关于“代数思维”的思考讨论-1.pptx
- 陈征宇就业指导兴趣探索、技能探索3.28.ppt
- 创造发明讲座课件(修改后)发明创造2.ppt
- 德育情况思想道德答辩25.pptx
- 催化的物理化学原理(寇元)第2章化学平衡与催化反应机理.ppt
最近下载
- 山东省烟台市2023-2024学年高二上学期期末考试数学试卷.docx VIP
- 中国成人惊厥性癫痫持续状态诊治指南(2025版).pptx VIP
- 第5章-水环境中的界面过程(吸附)1.pptx VIP
- 基础分部验收监理评估报告.doc VIP
- IPC-2221C-EN TOC2023印制版设计通用标准 Generic Standard on Printed Board Design.pdf VIP
- 交管12123学法减分题库(含答案).docx VIP
- 企业移出经营异常名录申请表.pdf VIP
- 龙门架及井架物料提升机安全技术规范.docx VIP
- 2025年交管12123学法减分考试题库500题(含答案).pdf VIP
- 众海智能ZH6751消防控制室图形显示装置使用说明书.pdf
原创力文档


文档评论(0)