《程序设计语言与编译》课程PPT教学课件(高职)第二十六讲 运行时存储空间管理

ξ第七章运行时存储空间管理 第一节变量及存储分配 程序投入运行的必要条件: 一组可运行的代码 个运行环境:分配空间、提供运行信
第七章 运行时存储空间管理 第一节 变量及存储分配 程序投入运行的必要条件: 一组可运行的代码 一个运行环境:分配空间、提供运行信 息

程序的存储空间 1.代码空间:线性存放着目标指令序列 在GAM中,当前执行的指令位置由指 令指针ip指示。 2.数据空间 (1)内容:变量、常数、控制和管理信 、描述符等
一. 程序的存储空间 1. 代码空间: 线性存放着目标指令序列 在GAM中, 当前执行的指令位置由指 令指针ip指示。 2. 数据空间 (1)内容: 变量、常数、控制和管理信 息、描述符等

(2)静态分配:在运行前就可确定数据 空间的大小,在编译时刻就能进行的存储 分配 (3)动态分配运行时才能进行的存储 分配 栈分配:因变量生存期的嵌套性 堆分配:因生存期的随机交叉特性
(2)静态分配: 在运行前就可确定数据 空间的大小, 在编译时刻就能进行的存储 分配 (3)动态分配: 运行时才能进行的存储 分配 栈分配: 因变量生存期的嵌套性 堆分配: 因生存期的随机交叉特性

活动记录 一个程序单元的一次激活所需的信息管 理是通过相应的活动记录来实施的 个单元的每次激活,都应建立相应的活 动记录,它是单元实例的一部分
二. 活动记录 一个程序单元的一次激活所需的信息管 理是通过相应的活动记录来实施的。一 个单元的每次激活,都应建立相应的活 动记录,它是单元实例的一部分

返回地址 1.活动记录的内容 动态链 (1)返回地址 静态链 (2)动态链和静态链 形式单元 (3)形式单元 变量存储区 (4)局部变量或其描述符,以及临时变 量
1. 活动记录的内容 (1)返回地址 (2)动态链和静态链 (3)形式单元 (4)局部变量或其描述符,以及临时变 量 返回地址 动态链 静态链 变量存储区 形式单元

2.活动记录的特点 除了变量存储区外,其余部分存储长 度编译时可以确定,则元素i地址可用下 式计算 D+offset(1) 其中,Oe是在活动记录中的位移D是 活动记录的首地址
2. 活动记录的特点 除了变量存储区外, 其余部分存储长 度编译时可以确定, 则元素i的地址可用下 式计算 D+offset(i) 其中, offset(i)是i在活动记录中的位移; D是 活动记录的首地址

三.变量的存储分配 1.静态变量:不管在程序单元的哪一次 活动中,均绑定于相同的存储位置 条件是:活动记录,变量的存储位置在 编译时可以确定 2.半静态变量:编译时确定相对位置, 单元被激活后,x绑定于D+ offset(x) 条件是:语言允许递归调用
三. 变量的存储分配 1. 静态变量: 不管在程序单元的哪一次 活动中, 均绑定于相同的存储位置 条件是: 活动记录, 变量的存储位置在 编译时可以确定 2. 半静态变量: 编译时确定相对位置, 单元被激活后, x绑定于D+offset(x) 条件是: 语言允许递归调用

3.半动态变量:动态数组;编译时在活 动记录中建立描述符 例:[1.m]inta; [1.n int b 4.动态变量:动态分配。编译时在活动 记录中为动态变量设置二个指针,一个指 向该变量的描述符,另一个指向该变量的 存储空间
3. 半动态变量: 动态数组; 编译时在活 动记录中建立描述符 例: [1..m] int a; [1..n] int b; 4. 动态变量: 动态分配。编译时在活动 记录中为动态变量设置二个指针, 一个指 向该变量的描述符, 另一个指向该变量的 存储空间

四.存储分配模式 1.静态分配 只允许静态变量,变量与存储区域的 绑定关系在编译时便可建立,并完成存储 分配 不允许递归调用,不允许动态数组,不 允许动态类型的数据对象,即不允许有非 静态变量。如: FORTRAN语
四. 存储分配模式 1. 静态分配 只允许静态变量, 变量与存储区域的 绑定关系在编译时便可建立, 并完成存储 分配。 不允许递归调用, 不允许动态数组, 不 允许动态类型的数据对象, 即不允许有非 静态变量。如: FORTRAN语言

2栈式分配 各单元之间的调用关系遵循“后进先出” 模式; 活动记录的建立和撤消也满足“后进先 出”模式; 用栈分配活动记录 分配方法:当激活一个程序单元时,其活 动记录就动态地分配于栈顶
2. 栈式分配 各单元之间的调用关系遵循“后进先出” 模式; 活动记录的建立和撤消也满足“后进先 出”模式; 用栈分配活动记录; 分配方法: 当激活一个程序单元时, 其活 动记录就动态地分配于栈顶
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十讲 含数组元素的赋值语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十二讲 一类控制语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二讲 强制式语言.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第八讲 控制结构.ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第一章 计算机应用的数学基础(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第五章 材料数据库与专家系统 (汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第四章 计算机辅助材料的测试与分析(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第三章 相图的计算机分析与计算(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第二章 材料科学中的数值模拟与计算(汤爱涛).ppt
- 《photoshop》讲义(电子课件).doc
- 《计算机图形学》课程教学资源:第2章 实面积图形的生成(赵立强).ppt
- 《Matlab入门教程》教学资源:学习参考资料.doc
- 《计算机网络技术教程》第9章 各种n7网络工作站的连接.ppt
- 《计算机网络技术教程》第8章 NT网络中的TCP/IP管理.ppt
- 《计算机网络技术教程》第7章 构建Windows NT网络.ppt
- 《计算机网络技术教程》第6章 Intranet网络管理.ppt
- 《计算机网络技术教程》第5章 Internet基础.ppt
- 《计算机网络技术教程》第4章 广域网实用组网技术.ppt
- 《计算机网络技术教程》第3章 局域网实用组网技术.ppt
- 《计算机网络技术教程》第2章 网络体系结构、协议和软件系统.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十七讲 栈式分配.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十三讲 控制语句也可采用改写文法的方法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十四讲 代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十五讲 循环优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十一讲 一类说明语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第九讲 SIMULA 67协同程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第六讲 类型检查.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第七讲 抽象数据类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第三讲 程序单元.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十八讲 SLR分析表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十二讲 编译概述.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十讲 程序设计语言和编译程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十九讲 代码生成和代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十六讲 优先关系表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十七讲 LR分析法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十三讲 自顶向下语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十四讲 预测分析程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十五讲 自底向上语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十一讲 自动机.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第四讲 用户定义类型.ppt