第入章运行时存储空间的组织和管理 术语 过程的活动 过程的一次执行称为过程的一次活动 活动记录 过程的活动需要可执行代码和存放所需信息的存 储空间,后者称为活动记录 本章内容 讨论一个活动记录中的数据布局 程序执行过程中,所有活动记录的组织方式
第六章 运行时存储空间的组织和管理 术语 –过程的活动 过程的一次执行称为过程的一次活动 – 活动记录 过程的活动需要可执行代码和存放所需信息的存 储空间,后者称为活动记录 本章内容 • 讨论一个活动记录中的数据布局 • 程序执行过程中,所有活动记录的组织方式
第六章运行时存储空间的组织和管理 影响存储分配策略的语言特征 过程能否递归 当控制从过程的活动返回时,局部变量的值是否 要保留 过程能否访问非局部变量 -过程调用的参数传递方式 -过程能否作为参数被传递 -过程能否作为结果值传递 存储块能否在程序控制下动态地分配 存储块是否必须显式地释放
第六章 运行时存储空间的组织和管理 • 影响存储分配策略的语言特征 – 过程能否递归 – 当控制从过程的活动返回时,局部变量的值是否 要保留 – 过程能否访问非局部变量 – 过程调用的参数传递方式 – 过程能否作为参数被传递 – 过程能否作为结果值传递 – 存储块能否在程序控制下动态地分配 –存储块是否必须显式地释放
6.1局部存储分配 6.1.1过程 语言概念: 过程定义、过程调用、形式参数、实在参 数、活动的生存期
6.1 局部存储分配 6.1.1 过程 语言概念: 过程定义、过程调用、形式参数、实在参 数、活动的生存期
6.1局部存储分配 6.1.2名字的作用域和绑定 1、名字的作用域 一个声明起作用的程序部分称为该声明的作 用域 即使一个名字在程序中只声明一次,该名字 在程序运行时也可能表示不同的数据对象
6.1 局部存储分配 6.1.2 名字的作用域和绑定 1、名字的作用域 • 一个声明起作用的程序部分称为该声明的作 用域 • 即使一个名字在程序中只声明一次,该名字 在程序运行时也可能表示不同的数据对象
6.1局部存储分配 2、环境和状态 环境把名字映射到左值,而状态把左值映射 到右值(即名字到值有两步映射) 赋值改变状态,但不改变环境 过程调用改变环境 如果环境将名字x映射到存储单元s,则说x被 绑定到s 环境 状态 名字 存储单元
6.1 局部存储分配 2、环境和状态 • 环境把名字映射到左值,而状态把左值映射 到右值(即名字到值有两步映射) • 赋值改变状态,但不改变环境 • 过程调用改变环境 • 如果环境将名字x映射到存储单元s,则说x被 绑定到s 名字 存储单元 状态 值 环境
6.1局部存储分配 3、静态概念和动态概念的对应 静态概念 动态对应 过程的定义 过程的活动
6.1 局部存储分配 3、静态概念和动态概念的对应 静 态 概 念 动 态 对 应 过程的定义 过程的活动
6.1局部存储分配 3、静态概念和动态概念的对应 静态概念 动态对应 过程的定义 过程的活动 名字的声明 名字的绑定
6.1 局部存储分配 3、静态概念和动态概念的对应 静 态 概 念 动 态 对 应 过程的定义 过程的活动 名字的声明 名字的绑定
6.1局部存储分配 3、静态概念和动态概念的对应 静态概念 动态对应 过程的定义 过程的活动 名字的声明 名字的绑定 声明的作用域 绑定的生存期
6.1 局部存储分配 3、静态概念和动态概念的对应 静 态 概 念 动 态 对 应 过程的定义 过程的活动 名字的声明 名字的绑定 声明的作用域 绑定的生存期
6.1局部存储分配 6.1.3活动记录 活动记录的常见布局 临时数据 高部数琚 机器状态 访问链 控制链 返▣值 参数
6.1 局部存储分配 6.1.3 活动记录 活动记录的常见布局 临 时 数 据 参 数 局 部 数 据 机 器 状 态 访 问 链 控 制 链 返 回 值
6.1局部存储分配 6.1.4局部数据的布局 字节是可编址内存的最小单位 变量所需的存储空间可以根据其类型而静态 确定 一个过程所声明的局部变量,按这些变量声 明时出现的次序,在局部数据域中依次分配 空间 局部数据的地址可以用相对于活动记录中某 个位置的地址来表示 数据对象的存储布局还有一个对齐问题
6.1 局部存储分配 6.1.4 局部数据的布局 • 字节是可编址内存的最小单位 • 变量所需的存储空间可以根据其类型而静态 确定 • 一个过程所声明的局部变量,按这些变量声 明时出现的次序,在局部数据域中依次分配 空间 • 局部数据的地址可以用相对于活动记录中某 个位置的地址来表示 • 数据对象的存储布局还有一个对齐问题