- 1
- 0
- 约1.29万字
- 约 42页
- 2018-01-15 发布于浙江
- 举报
软件工程专业本科课程
编 译 原 理
Compilers Principles
长安大学信息工程学院软件工程系
主讲:李 鹏
第七章 运行时刻环境
本章内容
•存储位置的分配
• 对变量及数据的访问
2
影响存储分配策略的语言特征
• 过程能否递归
• 当控制从过程的活动返回时,局部变量的值是否要保留
• 过程能否访问非局部变量
• 过程调用的参数传递方式
• 过程能否作为参数被传递
• 过程能否作为结果值传递
• 存储块能否在程序控制下动态地分配
• 存储块是否必须显式地释放
3
7.1 存储组织
运行时内存的划分
一个目标程序在逻辑 代 码 区
地址空间的运行时刻映像 静态区
包含数据区和代码区。 栈区
三种分配策略
静态分配
栈式分配 堆区
动态分配
堆式分配
7.1 存储组织 4
静态分配
• 名字在程序被编译时绑定到存储单元,不需要运行
时的任何支持。
• 绑定的生存期是程序的整个运行时间。
• 控制再次进入该过程时,局部变量的值和控制上一
次离开时的一样。
• 每个信息的存储空间大小是固定的。
• 过程调用时保存信息的地址在编译时是已知的。
7.1 存储组织 5
静态分配给语言带来限制
• 递归过程不被允许
• 数据对象的长度和它在内存中位置的限制,必须是
在编译时可以知道的
• 数据结构不能动态建立
7.1 存储组织 6
7.2 空间的栈式分配
活动树
活动树:用树来描绘控制进入和离开活动的方式
m
r q(1,9)
p (1,9) q(1,3) q(5,9)
p (1,3) q(1,0) q(2,3) p (5,9) q(5,5) q(7,9)
p (2,3) q(2,1) q(3,3) p (7,9) q(7,7) q(9,9)
7.2 空间的栈式分配 7
活动树的特点
• 每个结点代表某过程的一个活动
• 根结点代表主程序的活动
• 结点a是结点b 的父结点,当且仅当控制流从a 的
活动进入b 的活动
• 结点a处于结点b 的左边,当且仅当a 的生存期先
于b 的生存期
7.2 空间的栈式分配 8
活动记录
过程的活动
过程的一次执行称
您可能关注的文档
- 医学细胞生物学(中山大学)第二章 细胞的概念和分子基础(附习题).docx
- 医学细胞生物学(中山大学)第五章 细胞的内膜系统与囊泡运输.docx
- 医学细胞生物学(中山大学)12 信号转导-五年制.pptx
- 医学细胞生物学(中山大学)柯琼 核糖体-20141027.pptx
- 医学细胞生物学(中山大学)柯琼 第6章细胞骨架与细胞运动-20150408.pptx
- 医学英语教学(盛淑芳)Introduction.ppt
- 医学英语教学(盛淑芳)Unit 1.ppt
- 医学细胞生物学(中山大学)细胞分化-五年制.ppt
- 医学英语教学(盛淑芳)unit 3.ppt
- 医学细胞生物学(中山大学)上课课件 5细胞的内膜系统与囊泡转运.ppt
最近下载
- 2025年陕西省中考数学真题试卷含答案.pdf VIP
- 一年级英语寒假作业.pdf VIP
- 微生物技术 走进微生物世界 微生物技术—走进微生物世界.pptx VIP
- 《植物组织培养》课程教学大纲(本科).pdf VIP
- 2025年重庆市公务员省考《行测》联考真题(含答案).pdf VIP
- 2026年一年级英语【寒假作业】.docx VIP
- 抽象函数的单调性.doc VIP
- 2025年重庆市公务员考试行测真题及答案详解(最新).docx VIP
- 2025年特许金融分析师私募股权投资中的公司尽职调查专题试卷及解析.pdf VIP
- 2025年金融风险管理师久期与债券流动性风险的交互影响专题试卷及解析.pdf VIP
原创力文档

文档评论(0)