编译原理学习笔记22——运行时存储空间组织2

文章探讨了动态存储管理在程序执行过程中的作用,重点讲解了非嵌套和嵌套过程语言的内存分配策略。22.1节概述了动态存储管理的基本概念,22.2节阐述了非嵌套过程语言的活动记录和调用机制,22.3节介绍了静态链方法用于嵌套过程语言的存储管理,而22.4节则讨论了Display方法如何有效地维护嵌套层次和访问非局部变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

22.1 动态存储管理概述

存储分配策略
在这里插入图片描述
运行时存储器的划分
在这里插入图片描述
程序在运行时刻的内存划分
在这里插入图片描述
过程的活动与活动记录
在这里插入图片描述
程序在运行时刻的内存划分
在这里插入图片描述
程序在运行时刻的内存划分
在这里插入图片描述

22.2 非嵌套过程语言

非嵌套过程语言
在这里插入图片描述
非嵌套过程语言的活动记录内容
在这里插入图片描述
非嵌套过程语言过程调用示例
在这里插入图片描述
过程调用和过程返回
在这里插入图片描述
par和call产生的目标代码
在这里插入图片描述
进入过程体后执行的指令
在这里插入图片描述
过程返回执行的指令
在这里插入图片描述
嵌套过程语言
在这里插入图片描述
嵌套过程语言
在这里插入图片描述

22.3 嵌套过程语言的动态存储管理——静态链方法

嵌套层次与地址
在这里插入图片描述
在这里插入图片描述
静态链和活动记录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
嵌套过程语言的动态存储管理
在这里插入图片描述
静态链的建立和维护
在这里插入图片描述

22.4 嵌套过程语言的动态存储管理——Display方法

静态链方法访问非局部名字
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
嵌套层次显示表Display
在这里插入图片描述
如何维护嵌套层次显示表Display
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 关于吉林大学编译原理课程的学习资料 #### 1. 吉林大学编译原理自学记录 根据已有信息,吉林大学的《编译原理》课程提供了丰富的学习资源。例如,在一份名为“吉林大学 编译原理 自学记录”的文档中提到,该课程的内容涵盖了理论基础以及实践应用[^1]。此材料可以帮助学生理解编译器的工作机制及其核心概念。 #### 2. 符号构建实例分析 针对具体题目中的符号示例,“吉林大学编译原理2021-2022”给出了详细的解答方法。当程序执行至`i=a*b`,需维护一个全局符号来存储变量的相关属性(名称、种类、类型、作用域层次及偏移量)。其中,全局符号从偏移地址`off`开始分配空间;而局部符号则基于另一个初始位置`off0`进行布局[^2]。 以下是按照上述规则生成的一个简单示例代码片段用于说明如何实现这一功能: ```python class SymbolTableEntry: def __init__(self, name, kind, type_, level, offset): self.name = name # 变量名 self.kind = kind # 种类 (e.g., 'variable', 'function') self.type_ = type_ # 数据类型 (e.g., int, float) self.level = level # 层次编号 self.offset = offset # 偏移地址 def create_symbol_table(): global_offset = off # 初始化全局偏移指针 local_offset = off0 # 初始化局部偏移指针 symbol_table = [] a_entry = SymbolTableEntry('a', 'variable', 'int', 0, global_offset) b_entry = SymbolTableEntry('b', 'variable', 'float', 0, global_offset + 4) # 假设整型占4字节 i_entry = SymbolTableEntry('i', 'variable', 'double', 0, global_offset + 8) # 浮点数占用更多内存 symbol_table.extend([a_entry, b_entry, i_entry]) return symbol_table ``` 以上伪代码展示了如何创建并填充符号条目,每项均包含了必要的字段描述。 #### 3. 正规达式的构造技巧 另外一篇笔记——【自用】吉林大学编译原理第一章编译引论指出,在处理特定模式匹配问题可运用有限状态自动机(FSA)技术。比如为了识别由偶数个零和奇数个一构成字符串序列的情况,可以通过定义若干种基本单元组合形式达成目标[(情况1|情况2|情况3)*][^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值