第入章运行时存储空间的组织和管理 术语 过程的活动 过程的一次执行称为过程的一次活动 活动记录 过程的活动需要可执行代码和存放所需信息的存 储空间,后者称为活动记录 本章内容 讨论一个活动记录中的数据布局 程序执行过程中,所有活动记录的组织方式
第六章 运行时存储空间的组织和管理 术语 –过程的活动 过程的一次执行称为过程的一次活动 – 活动记录 过程的活动需要可执行代码和存放所需信息的存 储空间,后者称为活动记录 本章内容 • 讨论一个活动记录中的数据布局 • 程序执行过程中,所有活动记录的组织方式
第六章运行时存储空间的组织和管理 影响存储分配策略的语言特征 过程能否递归 当控制从过程的活动返回时,局部变量的值是否 要保留 过程能否访问非局部变量 -过程调用的参数传递方式 -过程能否作为参数被传递 -过程能否作为结果值传递 存储块能否在程序控制下动态地分配 存储块是否必须显式地释放
第六章 运行时存储空间的组织和管理 • 影响存储分配策略的语言特征 – 过程能否递归 – 当控制从过程的活动返回时,局部变量的值是否 要保留 – 过程能否访问非局部变量 – 过程调用的参数传递方式 – 过程能否作为参数被传递 – 过程能否作为结果值传递 – 存储块能否在程序控制下动态地分配 –存储块是否必须显式地释放
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 名字 存储单元 状态 值 环境