《程序设计语言与编译》课程PPT教学课件(高职)第二十七讲 栈式分配

第节楼式分 语言特点:允许递归,允许动态数组, 允许过程嵌套定义
第三节 栈式分配 语言特点:允许递归,允许动态数组, 允许过程嵌套定义

只含半静态变量的栈式分配 1.特点: 仅允许递归调用 变量及活动记录长度可静态确定 一个单元可多次激活而有多个实例, 每个活动记录是在单元每次激活时 动态建立并与代码段建立绑定关系 的
一. 只含半静态变量的栈式分配 1. 特点: •仅允许递归调用 •变量及活动记录长度可静态确定 •一个单元可多次激活而有多个实例, 每个活动记录是在单元每次激活时 动态建立并与代码段建立绑定关系 的

2处理方法 (1)设置当前栈指针 current,表示当前活动 记录的开始位置 (2)指针fre表示数据存储器下一个可用单元 (3)变量绑定于它在活动记录中的常数位移i, 变量通过 current变址访问 (4)A调用B时,在A活动记录的栈顶之上建 立起绑定于B的当前实例的活动记录 (5)从B返回时,释放其活动记录
2. 处理方法 (1)设置当前栈指针current,表示当前活动 记录的开始位置 (2)指针free表示数据存储器下一个可用单元 (3)变量绑定于它在活动记录中的常数位移i, 变量通过current变址访问 (4)A调用B时,在A活动记录的栈顶之上建 立起绑定于B的当前实例的活动记录 (5)从B返回时,释放其活动记录

3.动态连接和动态链 动态连接:A调用B时,B的活动记 录中保存的A的活动记录地址 动态链:由动态连接组成的一个调 用链
3. 动态连接和动态链 •动态连接:A调用B时,B的活动记 录中保存的A的活动记录地址 •动态链:由动态连接组成的一个调 用链

acall e: e call ff call g call f. A E F G
A E F G F A call E; E call F; F call G; G call F; ... ... ... ...

4. CALL P的处理 (1)保存返回地址 DI free lp+20 (2)保存主调过程的 current D Ifree +4]:=current (3)建立P的 current current free (4)调整fe free -free +L (5)转子 p:=P的代码段首地址
4. CALL P 的处理 (1)保存返回地址 D [ free ] := ip + 20 (2)保存主调过程的current D [free + 4] := current (3)建立P的current current := free (4)调整free free := free + L (5)转子 ip := P的代码段首地址

过程A中调用了P current 返回地址 动态连接 A的活动记录 free 返回地址 动态连接 即将建立的 P的活动记录
返回地址 动态连接 返回地址 动态连接 A的活动记录 即将建立的 P的活动记录 current free 过程A中调用了P

进入过程P以后 返回地址 动态链 A的活动记录 current 返回地址 动态链 P的活动记录 fr ee
返回地址 动态链 返回地址 动态链 A的活动记录 P的活动记录 current free 进入过程P以后

5 RETURN语句的处理 (1)恢复free fre ee current (2)恢复主调过程的 current current: =D[current +41 (3)返回 ip: D [freel
5. RETURN语句的处理 (1)恢复free free := current (2)恢复主调过程的current current := D[current + 4] (3)返回 ip := D [free]

三.半静态变量的栈式分配 1.活动记录内容 返回地址 动态链 静态链 保护区 参数单元 局部变量 临时变量 数组存储区 其中,局部变量中包括数组的描述符
二. 半静态变量的栈式分配 1. 活动记录内容 返回地址 动态链 静态链 保护区 参数单元 局部变量 临时变量 数组存储区 其中,局部变量中包括数组的描述符
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十六讲 运行时存储空间管理.ppt
- 《程序设计语言与编译》课程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
- 《程序设计语言与编译》课程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
- 《程序设计语言与编译》课程PPT教学课件(高职)第五讲 组合类型.ppt