Microsoft PowerPoint - Compiler-7 - Runtime Environment.ppt [兼容模式]



Similar documents
《C语言基础入门》课程教学大纲

第2章 数据类型、常量与变量

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

Microsoft PowerPoint - plan03.ppt


Microsoft PowerPoint - plan03.ppt

修改版-操作手册.doc

I

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

国债回购交易业务指引

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

深圳市新亚电子制程股份有限公司

电信系教学大纲的基本规范

登录、注册功能的测试用例设计.doc

采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

2 熟 悉 Visual Basic 的 集 成 开 发 环 境 3 了 解 可 视 化 面 向 对 象 编 程 事 件 驱 动 交 互 式 开 发 等 基 本 概 念 4 了 解 Visual Basic 的 特 点 环 境 要 求 与 安 装 方 法 1 Visual Basic 开 发 应 用

<4D F736F F D C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>

生产支援功能 使用说明书(IP-110 篇)

<4D F736F F D C3E6CFF2B6D4CFF3A3A8B5DAC8FDD5C220C0E0CCD8D0D4A3A92E646F63>

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

 编号:

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

证券代码: 证券简称:长城电脑 公告编号:

上证指数

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

抗 日 战 争 研 究 年 第 期

Template BR_Rec_2005.dot

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

上海证券交易所会议纪要

精 勤 求 学 自 强 不 息 Born to win! 解 析 : 由 极 限 的 保 号 性 知 存 在 U ( a) 当 a 时 f ( ) f ( a) 故 f ( ) 在 点 a 不 取 极 值 f ( ) f ( a) f ( ) f ( a) lim lim a a a a ( a)

·岗位设置管理流程

4.3.3 while 语 句 用 于 无 限 循 环 当 while 语 句 的 表 达 式 永 远 不 会 为 布 尔 假 时, 循 环 将 永 远 不 会 结 束, 形 成 无 限 循 环, 也 称 死 循 环 使 用 while 语 句 构 成 无 限 循 环 的 格 式 通 常

Microsoft Word - 第3章.doc

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

教师上报成绩流程图

2. 本 次 修 改 后, 投 资 者 申 购 新 股 的 持 有 市 值 要 求 市 值 计 算 规 则 及 证 券 账 户 使 用 的 相 关 规 定 是 否 发 生 了 变 化? 答 : 未 发 生 变 化 投 资 者 申 购 新 股 的 持 有 市 值 是 指, 以 投 资 者 为 单 位


中 国 软 科 学 年 第 期!!!

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

云信Linux SSH认证代理用户手册

<433A5C C6B73625C B746F705CB9FABCCAD6D0D2BDD2A9D7A8D2B5B8DFBCB6BCBCCAF5D6B0B3C6C6C0C9F3C9EAC7EBD6B8C4CFA3A CDA8D3C3B0E6A3A92E646F63>

<443A5C6D B5C30312EB9A4D7F7CEC4B5B55C30322EBACFCDACCEC4B5B55C C30342EC8CBC9E7CCFC5C31332ECFEEC4BFC5E0D1B55C E30385C322EB2D9D7F7CAD6B2E12E646F63>

GB

系统设计文档_样稿管理模块 V1.1_.doc

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单


一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

名 称 生 命 科 学 学 院 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院

Cybozu Garoon 3 管理员手册


<4D F736F F D20B3D6B2D6CFDEB6EEB1EDB8F1D7EED6D52E646F63>

2006年顺德区高中阶段学校招生录取分数线

变 量 的 主 要 作 用 是 存 取 数 据 提 供 存 放 信 息 的 容 器 对 于 变 量 必 须 明 确 变 量 的 命 名 变 量 的 类 型 变 量 的 声 明 及 其 变 量 的 作 用 域 JavaScript 是 一 种 弱 类 型 语 言, 也 就 是 说, 在 声 明 变 量

第二讲 数列

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

Microsoft Word - 第7章 图表反转形态.doc

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

珠江钢琴股东大会

4 进 入 交 互 区 设 置 的 组 件 管 理, 在 组 件 管 理 中, 教 师 可 以 选 择 课 程 空 间 中 的 所 有 组 件, 并 通 过 点 击 启 用 或 不 启 用 选 定 组 件 在 课 程 空 间 中 的 显 示 5 进 入 工 作 室 管 理 的 工 作 室 首 页,

课程类 别

目 录 一 激 活 账 号... 2 二 忘 记 密 码 后 如 何 找 回 密 码?... 3 三 如 何 管 理 学 校 信 息 及 球 队 学 生 教 师 等 信 息... 6 四 如 何 发 布 本 校 校 园 文 化? 五 如 何 向 教 师 发 送 通 知? 六

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

i 1) 系 统 运 作 前 设 定 *1. [2.1 网 页 主 机 名 称 设 定 ] -- 设 定 校 务 系 统 的 主 机 IP 地 址, 以 供 其 他 个 人 电 脑 连 接 及 使 用 该 系 统 *2. [2.3.1 输 入 / 修 改 学 校 资 料 ] -- 输 入 系 统 使

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

ICS 35

用节点法和网孔法进行电路分析

西 南 民 族 学 院 学 报 哲 学 社 会 科 学 版 第 卷 资 料 来 源 中 国 统 计 年 鉴 年 年 新 中 国 五 十 年 统 计 资 料 汇 编 中 国 人 口 统 计 年 鉴 年 数 据 资 料 来 源 中 国 统 计 年 鉴 中 国 统 计 出 版 社 年 版 资 料 来 源

听 力 测 试 1 级 A 拍 出 考 官 所 弹 奏 乐 段 的 节 拍, 并 辨 认 是 二 拍 子 还 是 三 拍 子 考 官 会 开 始 弹 奏 乐 段, 考 生 应 尽 快 加 入, 拍 出 拍 子 并 突 出 强 拍 考 官 接 着 会 问 乐 曲 是 二 拍 子 还 是 三 拍 子 不

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 ( 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 ( 首 页

国际财务报告准则第13号——公允价值计量

伊 犁 师 范 学 院 611 语 言 学 概 论 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 语 言 学 纲 要 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大 大 提 高 复 习 效

<4D F736F F D20CAAEC8FDCEE5B9E6BBAED7EED6D5B8E5352E33312E646F63>

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决


第3章 创建数据库

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05

微软用户

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类

Microsoft Word - GT21L16S2W简要说明V3.7.doc

标题

思 想 政 治 理 论 经 核 查 无 误 思 想 政 治 理 论 经 核 查 无 误 思 想 政 治 理 论 经 核 查 无 误 思 想

激 励 计 划 设 定 的 第 三 个 解 锁 期 解 锁 条 件 是 否 达 到 解 锁 条 件 的 说 明 1 公 司 未 发 生 如 下 任 一 情 形 : 1 公 司 最 近 一 个 会 计 年 度 财 务 会 计 报 告 被 注 册 会 计 师 出 具 否 定 意 见 或 者 无 法 表

文档编号:

中国银行股份有限公司首次公开发行A股发行安排及初步询价公告

第 四 条 建 设 单 位 对 可 能 产 生 职 业 病 危 害 的 建 设 项 目, 应 当 依 照 本 办 法 向 安 全 生 产 监 督 管 理 部 门 申 请 职 业 卫 生 三 同 时 的 备 案 审 核 审 查 和 竣 工 验 收 建 设 项 目 职 业 卫 生 三 同 时 工 作 可

ETF、分级基金规模、份额变化统计

数 学 标 准 不 练 习 1.1 理 解 问 题 并 坚 持 解 决 这 些 问 题 1.2 以 抽 象 和 定 量 方 式 推 理 1.3 建 构 可 行 参 数 和 评 判 他 人 的 推 理 1.4 使 用 数 学 方 法 建 模 1.5 策 略 性 地 使 用 合 适 的 工 具 1.6

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,

模 型 假 设 假 设 假 设 假 设 假 设 假 设 模 型 建 立 与 推 导

目 录 页 1. 欢 迎 使 用 网 上 预 约 面 谈 访 问 系 统 新 用 户 新 用 户 登 入 帐 户 程 序 启 动 网 上 预 约 面 谈 访 问 帐 户 核 对 帐 户 的 地 址 资 料

<4D F736F F D20CAFDD6B5BBFDB7D6D3EBCAFDD6B5CEA2B7D6D1A7CFB0D6B8B5BC2E646F63>

第 一 部 分 MagiCAD for Revit 安 装 流 程


Transcription:

本 章 主 要 内 容 运 行 时 环 境 (Runtime Environment) 目 标 程 序 运 行 时 的 活 动 运 行 存 储 的 划 分 静 态 存 储 分 配 栈 式 存 储 分 配 堆 式 动 态 存 储 分 配 LI L. 1 运 行 时 环 境 变 量 名 的 绑 定 完 全 静 态 环 境 FORTRAN 基 于 栈 的 环 境 C C++ Pascal JavaC++ 完 全 动 态 环 境 LISP 静 态 绑 定 : 编 译 时 指 定 ( 相 对 地 址 ) 词 法 分 析 期 间 在 符 号 表 中 建 立 变 量 的 表 项 说 明 语 句 的 语 义 分 析 : 字 节 数 的 计 算, 填 写 变 量 地 址 动 态 绑 定 : 运 行 时 指 定 ( 具 体 地 址 / 相 对 地 址 ) 如 : 动 态 数 组 编 译 技 术 及 应 用 李 莉 1

过 程 / 函 数 名 的 绑 定 过 程 调 用 为 过 程 指 定 程 序 代 码 段 入 口 地 址 静 态 绑 定 : 编 译 时 指 定 相 对 地 址 语 义 分 析 : 构 造 目 标 代 码, 填 写 过 程 的 入 口 地 址 如 : 一 般 的 函 数 子 例 程 动 态 绑 定 运 行 时 指 定 函 数 名 作 为 形 式 参 数 如 : 函 数 指 针 虚 函 数 过 程 的 定 义 与 调 用 形 参 和 实 参 的 结 合 : 参 数 计 算 和 传 递 调 用 和 返 回 工 作 方 式 调 用 方 : 当 前 环 境 的 保 存 与 恢 复 被 调 用 方 : 构 造 环 境, 参 数 绑 定 目 标 程 序 运 行 时 的 活 动 过 程 调 用 过 程 定 义 是 一 个 声 明 过 程 名 + 过 程 体 当 过 程 名 出 现 在 可 执 行 语 句 中, 则 称 过 程 在 该 点 被 调 用 形 参 和 实 参 过 程 体 的 每 一 次 执 行 称 为 该 过 程 的 一 个 活 动 一 个 活 动 的 生 存 期 递 归 的 过 程 简 单 过 程 调 用 实 参 的 计 算 和 保 存 控 制 转 移 的 保 存 实 参 和 形 参 的 结 合 局 部 变 量 的 处 理 返 回 值 的 处 理 递 归 过 程 调 用 与 过 程 参 数 每 层 过 程 调 用 信 息 的 保 存 与 相 应 信 息 的 查 找 编 译 技 术 及 应 用 李 莉 2

运 行 时 存 储 器 的 划 分 运 行 时 存 储 器 的 划 分 编 译 器 为 目 标 程 序 分 配 存 储 空 间 以 存 储 生 成 的 目 标 代 码 数 据 对 象 和 跟 踪 过 程 活 动 的 控 制 栈 目 标 代 码 静 态 数 据 栈 堆 管 理 过 程 的 活 动 栈 和 堆 可 以 随 程 序 运 行 动 态 改 变 存 放 动 态 的 数 据 临 时 变 量 局 部 变 量 机 器 状 态 实 参 静 态 链 动 态 链 返 回 值 目 标 代 码 静 态 数 据 栈 堆 局 部 数 据 区 的 一 个 栈 单 元 活 动 记 录 活 动 记 录 表 示 一 次 执 行 活 动 中 的 相 关 信 息 活 动 记 录 完 全 静 态 运 行 时 环 境 连 接 数 据 临 时 变 量 局 部 变 量 机 器 状 态 实 参 静 态 链 动 态 链 返 回 值 用 于 表 达 式 的 计 算 局 部 数 据 寄 存 器 程 序 计 数 器 ( ) 保 存 实 参 的 值 用 于 存 取 非 局 部 数 据 保 存 调 用 者 活 动 记 录 地 址 等 存 放 返 回 值 编 译 时 对 所 有 数 据 对 象 分 配 固 定 的 存 储 单 元, 且 在 运 行 时 始 终 不 变 在 编 译 时 就 能 确 定 一 个 程 序 在 运 行 时 所 需 要 的 存 储 空 间 的 大 小, 并 分 配 目 标 程 序 运 行 时 需 要 的 全 部 存 储 空 间 编 译 技 术 及 应 用 李 莉 3

完 全 静 态 运 行 时 环 境 静 态 存 储 分 配 主 程 序 的 代 码 过 程 1 的 代 码 过 程 n 的 代 码 全 局 数 据 区 域 主 过 程 的 活 动 记 录 过 程 1 的 代 码 过 程 n 的 代 码 代 码 区 域 数 据 区 域 特 点 编 译 时 确 定 存 储 位 置 访 问 效 率 高 主 要 用 途 子 程 序 的 目 标 代 码 段 全 局 数 据 目 标 ( 全 局 变 量 ) 静 态 存 储 分 配 栈 式 存 储 分 配 无 法 克 服 的 问 题 数 据 对 象 的 长 度 和 它 在 内 存 中 位 置 的 约 束 在 编 译 时 必 须 知 道 数 据 结 构 不 能 动 态 建 立 ( 动 态 数 组 ) 不 允 许 递 归 调 用 将 存 储 组 成 一 个 栈, 运 行 时, 每 当 进 入 一 个 过 程 ( 一 个 新 的 活 动 开 始 ) 时, 就 把 它 的 活 动 记 录 压 入 栈 中, 形 成 当 前 工 作 的 数 据 区 一 个 过 程 的 活 动 记 录 的 体 积 在 编 译 时 是 可 静 态 确 定 的 当 活 动 结 束 ( 过 程 退 出 ) 时, 再 将 它 的 活 动 记 录 弹 出 栈 编 译 技 术 及 应 用 李 莉 4

全 局 数 据 说 明 Main() Main 中 的 数 据 说 明 Q; Void R( ) R 中 的 数 据 说 明 Void Q( ) Q 中 的 数 据 说 明 R; 栈 式 存 储 分 配 SP TOP 全 局 数 据 区 Main 的 活 动 记 录 Q 的 活 动 记 录 R 的 活 动 记 录 #include <stdio.h> int x, y; int gcd(int u, int v) if (v==0) return u; else return gcd(v, u%v); main() scanf( %d%d, &x, &y); printf( %d \n, gcd(x, y)); return 0; fp sp x:15 y:10 u: 15 v: 10 u: 10 v: 5 u: 5 v: 0 自 由 空 间 全 局 / 静 态 区 域 main 的 活 动 记 录 第 一 次 调 用 gcd 时 的 活 动 记 录 第 二 次 调 用 gcd 时 的 活 动 记 录 第 三 次 调 用 gcd 时 的 活 动 记 录 栈 生 长 的 方 法 int x=2; void g(int); void f(int n) static int x=1; g(n); x--; void g(int m) int y=m-1; if(y>0) f(y); x--; g(y); main() g(x); return 0; fp sp x:2 x(from f):1 m: 2 y:1 n: 1 m: 1 y: 0 自 由 空 间 全 局 / 静 态 区 域 main 的 活 动 记 录 调 用 g 时 的 活 动 记 录 调 用 f 时 的 活 动 记 录 调 用 g 时 的 活 动 记 录 栈 生 长 的 方 法 int x=2; void g(int); void f(int n) static int x=1; g(n); x--; void g(int m) int y=m-1; if(y>0) f(y); x--; g(y); main() g(x); return 0; fp sp x: 1 x(from f):0 m: 2 y:1 m: 1 y: 0 自 由 空 间 全 局 / 静 态 区 域 main 的 活 动 记 录 调 用 g 时 的 活 动 记 录 调 用 g 时 的 活 动 记 录 栈 生 长 的 方 法 编 译 技 术 及 应 用 李 莉 5

void f(int x, char c) int a[10]; double y;. fp x c a[9] a[0] y x 偏 移 量 c 偏 移 量 a 偏 移 量 y 偏 移 量 调 用 序 列 调 用 过 程 计 算 自 变 量 并 将 其 存 放 在 过 程 的 新 活 动 目 录 中 的 正 确 位 置 将 fp 作 为 存 放 到 新 的 活 动 记 录 中 改 变 fp 以 使 其 指 向 新 的 活 动 记 录 的 开 始 将 存 放 在 新 的 活 动 记 录 中 ( 如 果 需 要 ) 完 成 到 被 调 用 的 过 程 的 代 码 的 一 个 转 移 调 用 序 列 从 调 用 中 返 回 将 fp 复 制 到 sp 中 将 装 载 到 fp 中 完 成 到 的 一 个 转 移 改 变 sp 以 弹 出 自 变 量 临 时 变 量 和 嵌 套 说 明 x[i]=(i+j)*(i/k + f(j)) fp sp x[i] [] 的 地 址 i+j 的 结 果 i/j 的 结 果 包 含 表 达 式 过 程 的 活 动 记 录 临 时 变 量 调 用 f 时 ( 将 要 创 建 的 ) 的 新 活 动 记 录 编 译 技 术 及 应 用 李 莉 6

Program nonlocalref procedure p; var n: integer; procedure q; begin // 存 在 对 n 的 引 用 end; procedure r(n:integer) begin q; end; begin n := 1; r(2); end; begin p; end fp sp 具 有 局 部 过 程 的 基 于 栈 的 环 境 无 访 问 链 n:1 n:2 访 问 链 访 问 链 主 程 序 的 活 动 记 录 调 用 p 时 的 活 动 记 录 调 用 r 时 的 活 动 记 录 调 用 q 时 的 活 动 记 录 栈 式 存 储 分 配 特 点 嵌 套 调 用 次 序 先 进 后 出 生 存 期 仅 限 于 本 次 调 用 自 动 释 放 主 要 用 途 过 程 的 局 部 变 量 活 动 记 录 堆 式 存 储 分 配 堆 式 存 储 分 配 大 多 语 言 需 要 一 些 动 态 的 功 能 以 处 理 指 针 分 配 和 重 新 分 配 堆 堆 通 常 是 存 储 区 的 一 个 线 性 块, 根 据 需 要 可 以 生 长 分 配 操 作 和 释 放 操 作 用 户 可 以 动 态 的 申 请 和 释 放 空 间, 且 不 满 足 先 请 后 还, 后 请 后 还 malloc, free 操 作 new, delete 操 作 X W Y Z W X Y Z 编 译 技 术 及 应 用 李 莉 7

堆 式 动 态 存 储 分 配 的 实 现 堆 式 动 态 存 储 分 配 的 实 现 定 长 块 管 理 占 用 占 用 占 用 空 闲 空 闲 空 闲 占 用 空 闲 占 用 available 空 闲 空 闲 空 闲 变 长 块 管 理 根 据 需 要 分 配 长 度 不 同 的 存 储 块 分 配 策 略 首 次 满 足 法 最 优 满 足 法 最 差 满 足 法 available 垃 圾 回 收 方 法 垃 圾 回 收 方 法 引 用 计 数 ( Reference Counting ) 算 法 标 记 - 清 除 ( Mark-Sweep ) 算 法 第 一 种 实 用 和 完 善 的 垃 圾 收 集 算 法 J. McCarthy 等 人 在 1960 年 提 出 并 成 功 地 应 用 于 Lisp 语 言 复 制 (Coping) 算 法 M. L. Minsky 于 1963 年 发 表 了 著 名 的 论 文 A LISP Garbage Collector Algorithm Using Serial Secondary Storage S. Arnborg 成 功 地 将 复 制 算 法 应 用 到 了 Simula 语 言 中 标 记 - 整 理 ( Mark-Compact ) 算 法 增 量 收 集 ( Incremental Collecting ) 算 法 分 代 收 集 ( Generational Collecting ) 算 法 并 发 ( Concurrent ) 收 集 编 译 技 术 及 应 用 李 莉 8

堆 式 存 储 分 配 名 字 的 绑 定 特 点 存 储 空 间 的 动 态 分 配 和 释 放 主 要 用 途 用 于 存 储 动 态 数 据 结 构 实 现 方 法 将 内 存 空 间 分 为 若 干 块, 根 据 用 户 需 求 分 配 无 法 满 足 时, 调 用 无 用 单 元 收 集 程 序 将 已 释 放 的 块 收 集 起 来 重 新 分 配 即 使 每 个 名 字 在 程 序 中 只 声 明 一 次, 同 一 个 名 字 在 运 行 时 可 能 代 表 不 同 的 数 据 对 象 数 据 对 象 : 保 存 值 的 存 储 单 元 环 境 : 将 名 字 映 射 到 存 储 单 元 的 函 数 状 态 : 将 存 储 单 元 映 射 到 它 所 保 存 的 值 的 函 数 环 境 状 态 名 字 存 储 单 元 值 名 字 的 绑 定 参 数 传 递 如 果 环 境 把 存 储 单 元 s 与 名 字 x 联 系 起 来, 则 称 x 绑 定 到 s 变 量 名 数 据 存 储 单 元 地 址 过 程 名 函 数 名 程 序 段 入 口 地 址 静 态 概 念 过 程 的 定 义 名 字 的 声 明 声 明 的 作 用 域 动 态 对 应 物 过 程 的 活 动 名 字 的 绑 定 绑 定 的 生 命 期 形 参 和 实 参 左 值 和 右 值 i := j 左 值 : 表 达 式 表 示 的 存 储 单 元 右 值 : 这 个 存 储 单 元 中 所 存 的 值 编 译 技 术 及 应 用 李 莉 9

参 数 传 递 参 数 传 递 值 传 递 (pass by value) 引 用 传 递 (pass by reference) 值 结 果 传 递 (pass by value-result) lt) 名 字 传 递 (pass by name) 值 传 递 过 程 调 用 时 计 算 实 参, 并 将 值 传 给 被 调 用 过 程 void inc( int x) ++x; 实 参 A A 单 向 传 播 形 参 X A 的 值 参 数 传 递 参 数 传 递 引 用 传 递 如 果 实 参 是 有 左 值 的 名 字 或 表 达 式, 则 传 递 这 个 左 值 本 身 如 果 实 参 是 a+b 或 2 这 样 的 表 达 式, 没 有 左 值, 则 计 算 该 表 达 式 的 值 并 存 入 新 的 存 储 单 元, 然 后 传 递 这 个 单 元 的 地 址 实 参 A A 传 地 址 被 调 用 者 间 址 访 问 形 参 X A 的 地 址 引 用 传 递 void swap(int &x, int &y) int tmp; tmp = x; x = y; y = tmp; void f(const int &x) x ++ ; void f(const int *x) (*x) ++ ; 编 译 技 术 及 应 用 李 莉 10

参 数 传 递 参 数 传 递 值 结 果 传 递 ( 复 制 - 恢 复 复 制 进 复 制 出 ) 传 值 调 用 和 传 地 址 调 用 的 混 合 在 控 制 流 进 入 被 调 用 过 程 之 前 计 算 实 参, 实 参 的 右 值 像 传 值 一 样 传 递 给 被 调 用 过 程 当 控 制 返 回 时, 将 形 参 的 当 前 右 值 复 制 回 实 参 的 左 值, 该 左 值 是 上 述 调 用 前 计 算 的 左 值 名 字 传 递 将 被 调 用 过 程 的 过 程 体 复 制 到 调 用 处, 并 将 每 一 个 形 参 文 字 地 替 换 为 实 参 是 一 种 早 期 的 语 言 Algol 用 的 一 种 参 数 传 递 方 式 实 参 A A 传 地 址 传 值 形 参 X A 的 地 址 主 程 序 : A=2; B=3; P(A+B, A, A); print A; 子 程 序 : P(X, Y, Z) Y = Y+1; Z = Z+X; 形 式 传 值 引 用 复 制 恢 复 传 名 调 用 过 程 临 时 单 元 : T: A+B=5 X=T=5, Y=Z=A=2 A=A+1=2+1 A=A+T=3+5 X=T=5, Y=Z=A=2 Y=Y+1=3 Z=Z+X=2+5=7 Y A=3 Z A=7 结 果 2 8 7 9 A=A+1=3 A=A+A+B=3 +3+3=9 存 储 空 间 动 态 分 配 的 问 题 悬 空 引 用 引 用 某 个 已 经 释 放 的 存 储 单 元 main() int *p; p = dangle(); int *dangle() int i = 10; return &i; 编 译 技 术 及 应 用 李 莉 11

存 储 空 间 动 态 分 配 的 问 题 存 储 空 间 动 态 分 配 的 问 题 垃 圾 单 元 动 态 分 配 的 单 元 可 能 变 得 不 可 访 问 head head 23 42 10 nil 23 nil 42 10 nil 野 指 针 好 习 惯 :char *p = NULL; char *str = (char *) malloc(100); 好 习 惯 : 执 行 申 请 空 间 后, 判 断 是 否 申 请 成 功 指 针 p 被 free 或 者 delete 之 后, 没 有 置 为 NULL, 让 人 误 以 为 p 是 个 合 法 的 指 针 本 章 小 结 本 章 小 结 影 响 存 储 分 配 策 略 的 语 言 特 征 过 程 是 否 递 归 ; 当 控 制 从 一 个 活 动 的 过 程 返 回 时, 局 部 变 量 的 值 是 否 要 保 留 过 程 能 否 访 问 非 局 部 过 程 调 用 的 参 数 传 递 方 式 过 程 能 否 被 作 为 参 数 传 递 过 程 能 否 作 为 结 果 值 传 递 存 储 块 能 否 在 程 序 控 制 下 动 态 地 分 配 存 储 块 是 否 必 须 显 式 地 释 放 静 态 绑 定 和 动 态 绑 定 参 数 的 传 递 方 式 活 动 记 录 中 各 种 数 据 域 的 安 排 和 作 用 程 序 执 行 过 程 中 如 何 进 行 存 储 分 配 的? 何 时 为 哪 些 数 据 分 配 存 储 空 间? 编 译 技 术 及 应 用 李 莉 12