- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 运行环境 知识点:活动记录、控制栈 栈式存储分配 非局部名字的访问 参数传递方式 运行环境 程序运行时刻的环境,即运行中程序的信息是怎样存储和访问的。 执行过程中,程序中数据的存取是通过对应的存储单元来进行的。 存储组织与管理 早期的计算机上,存储管理工作是由程序员自己来完成 有了高级语言之后,程序中使用的存储单元都由标识符来表示,它们对应的内存地址由编译程序在编译时或由其生成的目标程序在运行时进行分配。 存储的组织及管理是编译程序要完成的一个复杂而又十分重要的工作。 运行环境 7.1 程序运行时的存储组织 7.2 存储分配策略 7.3 访问非局部名字 7.4 参数传递机制 小 结 7.1 程序运行时的存储组织 概念:过程与活动 一、程序运行空间的划分 二、控制栈与活动记录 三、作用域及名字绑定 概念:过程与活动 过程的定义 一个声明语句 把一个标识符和一个语句联系起来 标识符是过程名,语句是过程体。 过程的分类 过程:没有返回值的过程 函数:有返回值的过程 也可以把函数、一个完整的程序看作过程 过程引用:过程名出现在一个可执行语句中 参数: 形参、实参 活动 活动 一个过程的每次执行称为它的一次活动 如果一个过程在执行中,则称它的这次活动是活着的 过程与活动 过程是一个静态概念,活动是一个动态概念 过程与活动之间可以是1:1、1:m的关系 递归过程,同一时刻可能有若干个活动是活着的 每个活动都有自己独立的存储空间/数据空间 活动的生存期 程序执行时,过程之间的控制流 是连续的 过程的每一次执行都是从过程体的起点开始,最后控制返回到直接跟随本次调用点的位置。 活动的生存期 过程体的执行中,第一步和最后一步之间的一系列步骤的执行时间 过程P的一次活动的生存期,包括执行过程P所调用的过程的时间,以及这些过程所调用的过程的时间 如果a和b是过程的活动,那么它们的生存期要么是不重叠,要么是嵌套的。 递归过程: 如果一个过程,它的不同活动的生存期可以嵌套,则这个过程是递归的 直接递归、间接递归 一、程序运行空间的划分 编译程序在编译源程序时,向操作系统申请一块内存区域,以便被编译程序在其中运行 二、控制栈与活动记录 控制栈:用于保存控制信息的栈。 程序执行过程中使用控制栈来保存活动的生存踪迹及活动的运行环境。 活动记录:一个连续的存储块 记录过程在一次执行中所需要的信息 通常,活动记录分配在控制栈中(像Pascal、C) 当一个过程被调用时,被调用过程的一次新的活动被激活,在栈顶为该活动创建一个新的活动记录来保存其环境信息; 当活动结束,控制从被调用过程返回时,释放该活动记录,使调用过程的活动记录成为栈顶活动记录,即恢复调用过程的执行环境。 活动记录的内容 活动记录中内容的安排原则 大小能够较早确定的区域放在活动记录的中间,大小较晚才能确定、并且变化较多的区域放在活动记录的两头。 控制链、访问链、机器状态域,是编译器设计的一部分,编译器构造时就可以确定它们的大小,所以把这些区域放在活动记录的中间。 参数域放在前面,便于调用过程进行参数传递,同时,被调用过程也可很方便地进行访问。 返回值域放在最前面,便于调用过程可以根据自己的栈指针访问该区域,取回返回值。 局部数据/临时数据安排在最后,其大小变化不会影响到活动记录中其他数据的存取。并且调用过程也无权访问被调用过程中的局部数据。 局部数据的安排 常识: 程序运行时使用连续的存储空间 内存可编址的最小单位是字节 一个机器字由若干个字节组成 一个名字所需存储空间的大小由其类型决定 需多个字节表示的数据对象,存放在连续字节的存储块中,第一个字节的地址作为它的地址 局部数据的安排 局部数据区是在编译过程中检查声明语句时安排的 长度可变的数据对象,放在该区域之外 数据对象的存储安排受目标机器编址限制的影响 编址限制的影响 整数加法指令可能要求整数的地址能够被4整除 要求地址对齐 如:x:integer; y:char; z:integer; 三、作用域及名字绑定 声明是一个把信息与名字联系起来的语法结构 显式声明(如PASCAL中的声明:var i:integer) 隐含声明(如FORTRAN程序) 在一个程序的不同部分可能有对同一个名字的相互独立的声明 一个声明起作用的程序部分称为该声明的作用域 语言的作用域规则决定了当这样的名字在程序正文中出现时应该使用哪一个声明 Pascal中的名字遵循“最近嵌套原则” 编译过程中,名字的作用域信息记录在符号表中 名字的绑定 把名字对应到存储单元的过程 名字与存储单元的对应关系: 1:1 1:m 与存储组织与管理有关的其他问题 名字的存储空间如
您可能关注的文档
最近下载
- 消瘦诊治与管理专家共识(2025)解读 PPT课件.pptx VIP
- 《船舶值班与避碰》 参 考 文 献 1 1972年国际海上避碰规则(中、英文版 .DOC VIP
- 慢性肾功能衰竭护理查房优秀PPT.pptx VIP
- CMOS模拟集成电路版图设计:基础、方法与验证 PPT课件 第八章 带隙基准源与低压差线性稳压器版图设计.pptx
- 《消瘦诊治与管理专家共识(2025)》解读.docx VIP
- 精液品质检查与精液生产.ppt VIP
- 《综合应用能力(A类).PDF VIP
- 重症血液净化血管通路的建立与应用中国专家共识解读2025.pptx VIP
- 外科学教学课件:泌尿系结石.ppt VIP
- 机动车尾气技术检测 GB3847培训.pptx VIP
文档评论(0)