第5章运行时存储空间的组织和管理 术语 过程的活动 过程的一次执行称为过程的一次活动 活动记录 过程的活动需要可执行代码和存放所需信息的存 储空间,所需的局部信息的存储空间称为活动记录 本章内容 讨论一个活动记录中的数据布局 程序执行过程中,所有活动记录的组织方式
第5章 运行时存储空间的组织和管理 术语 –过程的活动 过程的一次执行称为过程的一次活动 – 活动记录 过程的活动需要可执行代码和存放所需信息的存 储空间,所需的局部信息的存储空间称为活动记录 本章内容 • 讨论 个活动记录中的数据布局 讨论一个活动记录中的数据布局 • 程序执行过程中,所有活动记录的组织方式
第5章运行时存储空间的组织和管理 影响存储分配策略的主要语言特征 过程能否递归 当控制从过程的活动返回时,局部变量的值是否 要保留 过程能否访问非局部变量 一过程调用的参数传递方式 -过程能否作为参数被传递 一过程能否作为结果值传递 一存储块能否在程序控制下动态地分配 存储块是否必须显式地回收
第5章 运行时存储空间的组织和管理 • 影响存储分配策略的主要语言特征 – 过程能否递归 – 当控制从过程的活动返回时,局部变量的值是否 要保留 – 过程能否访问非局部变量 – 过程调用的参数传递方式 – 过程能否作为参数被传递 – 过程能否作为结果值传递 – 存储块能否在程序控制下动态地分配 –存储块是否必须显式地回收
5.1局部存储分配 5.1.1过程 语言概念: 过程定义、过程调用、形式参数、实在参 数、活动的生存期
5 1. 局部存储分配 5.1.1 过程 语言概念: 过程定义、过程调用、形式参数、实在参 数、活动的生存期
5.1局部存储分配 5.1.2名字的作用域和绑定 1、名字的作用域 ·一个声明起作用的程序部分称为该声明的作 用域 即使一个名字在程序中只声明一次,该名字 在程序运行时也可能表示不同的数据对象
5 1. 局部存储分配 5.1.2 名字的作用域和绑定 1、名字的作用域 • 一个声明起作用的程序部分称为该声明的作 用域 • 即使一个名字在程序中只声明一次,该名字 在程序运行时也可能表示不同的数据对象
5.1局部存储分配 2、环境和状态 环境把名字映射到左值(存储单元),而状态 把左值映射到右值(即名字到值有两步映射) 赋值改变状态,但不改变环境 过程调用改变环境 如果环境将名字x映射到存储单元s,则说x被 绑定到s 环境 状态 名字 存储单元 值
5 1. 局部存储分配 2、环境和状态 • 环境把名字映射到左值 环境把名字映射到左值(存储单元),而状态 把左值映射到右值(即名字到值有两步映射) • 赋值改变状态,但不改变环境 • 过程调用改变 境 过程调用改变环境 • 如果环境将名字 如果环境将名字x映射到存储单元 映射到存储单元s,则说 x 被 绑定到s 环境 状态 名字 存储单元 值