吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第六章 运行时的存储空间

第六章运行时的存储空间 的运行时存储空间的结构和分配 过程活动记录AR 运行时变量的访问
第六章 运行时的存储空间 运行时存储空间的结构和分配 过程活动记录AR 运行时变量的访问

运行时的存储空间结构 ●要保存的信息: 目标代码;数据;库函数代码;数据信息表; 控制信息等 e运行时的存储空间结构: 最大地址 堆区空间 栈区空间 最小地址 库代码空间 静态区空间 目标代码空间
运行时的存储空间结构 要保存的信息: 目标代码;数据;库函数代码;数据信息表; 控制信息等 运行时的存储空间结构: 目标代码空间 静态区空间 库代码空间 堆区空间 栈区空间 最大地址 最小地址

运行时静态区的分配 存储对象的存储位置在程序的整个生命 周期是固定的。 分配对象 全程变量常量信息表 ●分配方法: 块地址法:( DataArea,0 ffset) 变址模式:( Register,0 ffset)
运行时静态区的分配 存储对象的存储位置在程序的整个生命 周期是固定的。 分配对象: 全程变量 常量 信息表 分配方法: 块地址法:(DataArea,Offset) 变址模式:(Register,Offset)

栈区的存储分配 ●存在递归调用 存储对象: 过程中被声明的形参、局部变量临时变量 e分配方法: 对每个被调用过程分配一段存储空间,sp存放当前 过程空间的开始地址;对变量X:( Leve l,off) 则其存放地址为off[sp] 过程结束时自动释放空间; ●不能存储: 值的生命周期长于过程的变量 动态申请空间的变量;
栈区的存储分配 存在递归调用 存储对象: 过程中被声明的形参、局部变量 临时变量 分配方法: 对每个被调用过程分配一段存储空间,sp存放当前 过程空间的开始地址;对变量X:(Level,off), 则其存放地址为off[sp]。 过程结束时自动释放空间; 不能存储: 值的生命周期长于过程的变量; 动态申请空间的变量;

堆区的存储分配 e可随时分配和释放空间 ●存储对象: 动态申请空间的变量的值 e释放空间方法: 显示释放: 隐式释放:单指针释放 计数释放法 标记释放法 分配空间方法: 最佳符合法;首次优先法;循环首次优先法
堆区的存储分配 可随时分配和释放空间 存储对象: 动态申请空间的变量的值 释放空间方法: 显示释放: 隐式释放:单指针释放 计数释放法 标记释放法 分配空间方法: 最佳符合法;首次优先法;循环首次优先法

运行时的过程活动记录与 栈区的组织结构 e过程活动记录(AR:过程的一个现场记录 记录内容: 今过程控制信息:先行活动记录的动态链指针、 返回地址、层数和长度等 令机器状态信息:寄存器状态等 ◆全局变量信息:非局部变量的信息 ◆局部变量值:形参变量、局部变量和临时变量
运行时的过程活动记录与 栈区的组织结构 过程活动记录(AR):过程的一个现场记录 记录内容: ❖过程控制信息:先行活动记录的动态链指针、 返回地址、层数和长度等 ❖机器状态信息:寄存器状态等 ❖全局变量信息: 非局部变量的信息 ❖局部变量值:形参变量、局部变量和临时变量

AR的结构 临时变量区 局部变量区 本层变量和返回值 形参变量区 返回值 全局变量环境 全局变量信息 机器状态 机器状态信息 过程层数 返回地址 控制状态信息 动态链指针 sp
AR的结构: 动态链指针 返回地址 过程层数 机器状态 全局变量环境 返回值 形参变量区 局部变量区 临时变量区 控制状态信息 机器状态信息 全局变量信息 本层变量和返回值 sp

例 Procedure p(i: integer) Var y: real; a: array[1. 10]of integer Begin y: =a[i]*25 end 则过程p被调用时的活动记录AR结构如下: Offset 23 a Offset =13 y Offset =11 Offset 10 返回值 全局信息 机器信息 sp 控制信息 Offset =0
例: Procedure p(i:integer); Var y:real; a:array[1..10]of integer; Begin y:=a[i]*25 end 则过程p被调用时的活动记录AR结构如下: 控制信息 机器信息 全局信息 返回值 i y a Offset = 10 Offset = 11 Offset = 13 Offset = 23 sp Offset = 0

动态链 ●调用链:过程名序列 若M是主程序名,则(M)是一个调用链; 若(M,…,R)是调用链,且在R中有S的 调用,则(M,…,R,S)也是调用链。 记为: Cal chain(S)=(M,…,R,S) e动态链: 如果有调用链 Cal chain(S)=(M,R,S), 则它对应的动态链为: Dynamic Chain=LAR(M),., AR(R), AR(S)
动态链 调用链 :过程名序列 若M是主程序名,则(M)是一个调用链; 若( M, …, R )是调用链,且在R中有S的 调用,则( M, …, R, S)也是调用链。 记为:CallChain(S)= (M, …,R, S) 动态链: 如果有调用链CallChain(S)=(M,…,R, S), 则它对应的动态链为: DynamicChain=[AR(M),…,AR(R),AR(S)]

e调用过程Q时: 今新产生活动记录 NewAR 今填写 NewAR的内容: 动态链指针:=sp; 填写返回地址、层数、大小和机器状态 8 sp: =sp+CurrentAR. size: 令转向Q子程序。 退出过程Q时 ◆(R1,R R):= CurrentAR, Machine Value: =CurrentAR Returnvalue 8 sp: =CurrentAR DynPointer ◆按原 CurrentAR. return返回
调用过程Q时: ❖ 新产生活动记录NewAR ❖ 填写NewAR的内容: 动态链指针:=sp; 填写返回地址、层数、大小和机器状态 ❖ sp:=sp+CurrentAR.Size; ❖ 转向Q子程序。 退出过程Q时: ❖ (R1 ,R2 ,...,Rn ) := CurrentAR.Machine; ❖ Value:=CurrentAR.ReturnValue; ❖ sp:=CurrentAR.DynPointer;. ❖ 按原CurrentAR.return返回;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第二章 一个微小的编译器.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第一章 编译程序概述.ppt
- 吉林大学:《编译原理》课程教学资源(试题习题)2001 级试题(B).doc
- 吉林大学:《编译原理》课程教学资源(试题习题)2001 级试题(A).doc
- 吉林大学:《编译原理》课程教学资源(教学大纲).doc
- 《计算机硬件技术基础》课程教学资源(PPT课件讲稿,共八章).ppt
- 《软件制造工程》第五章 应用安装.ppt
- 《软件制造工程》第四章 测试工程(3/3).ppt
- 《软件制造工程》面向对象软件的测试.ppt
- 《软件制造工程》第四章 测试工程(1/3).ppt
- 《软件制造工程》第四章 测试工程(2/3).ppt
- 《软件制造工程》第一章 软件制造工程的概念.ppt
- 《软件制造工程》第二章 程序设计.ppt
- 《软件制造工程》面向对象编程.ppt
- 《软件制造工程》第三章 编程工程.ppt
- 太原理工大学:《计算机网络安全技术与应用》PPT讲义课件_第9章 电子邮件安全系统.ppt
- 太原理工大学:《计算机网络安全技术与应用》PPT讲义课件_第8章 安全通信协议.ppt
- 太原理工大学:《计算机网络安全技术与应用》PPT讲义课件_第7章 计算机病毒防治.ppt
- 太原理工大学:《计算机网络安全技术与应用》PPT讲义课件_第6章 入侵检测系统.ppt
- 太原理工大学:《计算机网络安全技术与应用》PPT讲义课件_第5章 网络攻击技术分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第七章 动作文法和属性文法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第九章 中间代码优化.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第十章 目标代码生成.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第三章 有限自动机和词法分析器.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)正则表达式.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)有限自动机(Finite Automata).ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第四章 文法与语法分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)文法例1.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)自顶向下分析——递归下降法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LL分析方法—自顶向下分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LR(0)分析方法的不足.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LR(1)分析方法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LALR(1)方法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)简单优先分析方法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)语义分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)符号表.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)类型表达式.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)程序的语义分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)执行体的语义分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第八章 中间代码生成.ppt