1、计 算 机 软 件 技 术 基 础( 第 二 版 )李 芳 芸 沈 被 娜 王 选 民 编 著清 华 大 学 出 版 社内 容 简 介本 书 是 计 算 机 基 础 教 育 用 书 之 一 , 适 用 于 非 计 算 机 专 业的 本 科 生 、 研究 生 及 广 大 从 事 计 算 机 应 用 工 作 的 科 技 人 员 。本 书 用 较 短 的 篇 幅 、 通 俗 的 语 言 , 系 统 地 介 绍 了 计 算 机 软 件 技 术 的 基 础 知 识 , 其 中 包 括 软 件 和 软 件 工 程 概论 、 数 据 结 构、 操 作 系 统和 数 据 库 系 统 四 章 。 每 章 既 有
2、 基 本 原 理 的 叙 述 又 有 常 用 实 例 的 介 绍 , 各 章 后 均 附 有 习 题 。( 京 ) 新 登 字 158 号计 算 机 软 件 技 术 基 础( 第 二 版 )李 芳 芸 沈 被 娜 王 选 民 编 著清 华 大 学 出 版 社 出 版 北 京 清 华 园 通 县 宏 飞 印 刷 厂 印 刷新 华 书 店 总 店 科 技 发 行 所 发 行开 本 : 7 8 7 1 09 2 1 / 1 6 印 张 : 1 5. 7 5 字 数 : 3 7 2 千 字1 99 3 年 6 月 第 2 版 1 99 3 年 6 月 第 1 次 印 刷印 数 : 0000110000
3、ISBN 7-302-01200-8/ T P 450定 价 : 7. 30 元 计 算 机 基 础 教 育 丛 书 出 版 说 明近 年 来 , 我 国 的 计 算 机 应 用 事 业 迅 速 发 展 , 大 批 科 技 人 员 、 大 中 学 生 、 管 理 人 员 , 以 及各 行 各 业 的 在 职 人 员 都 迫 切 要 求 学 习 计 算 机 知 识 , 他 们 已 经 认 识 到 , 计 算 机 知 识 是 当 代 知 识 分 子 的 知 识 结 构 中 不 可 缺 少 的 重 要 部 分 。计 算 机 应 用 人 才 的 队 伍 由 两 部 分 人 组 成 : 一 部 分 是
4、从 计 算 机 专 业 毕 业 的 计 算 机 专 门人 才 , 他 们 是 计 算 机 应 用 人 才 队 伍 中 的 骨 干 力 量 ; 另 一 部 分 是 各 行 各 业 中 从 事 计 算 机 应 用 的 人 才 , 他 们 既 熟 悉 本 专 业 的 业 务 , 又 掌 握 计 算 机 应 用 的 技 术 , 人 数 众 多 , 是 计 算 机 应 用 人 才 队 伍 的 基 本 力 量 。 他 们 掌 握 计 算 机 知 识 的 情 况 和 应 用 计 算 机 的 能 力 在 相 当 大 程 度 上 决 定 了 我 国 计 算 机 应 用 的 水 平 。 因 此 , 在 搞 好 计
5、 算 机 专 业 教 育 的 同 时 , 在 广 大 非 计 算 机 专 业 中 开 展 计 算 机 基 础 教 育 是 十 分 必 要 的 。非 计 算 机 专 业 中 的 计 算 机 教 学 , 无 论 就 目 的 、 内 容 、 教 学 体 系 、 教 材 、 教 学 方 法 等 各 方面 都 与 计 算 机 专 业 有 很 大 的 不 同 , 它 以 应 用 为 目 的 , 以 应 用 为 出 发 点 。 如 果 不 注 意 这 个 特 点 , 将 会 事 倍 功 半 。 广 大 非 计 算 机 专 业 的 师 生 、 在 职 干 部 迫 切 希 望 有 一 套 适 合 他 们 的 教
6、 材 , 以 便 循 序 渐 进 地 迈 入 计 算 机 应 用 领 域 , 并 且 不 断 地 提 高 自 己 的 水 平 。 我 们 在 前 几 年 陆 续 编 写 了 一 些 适 合 初 学 者 使 用 的 教 材 , 受 到 广 大 群 众 的 欢 迎 。 许 多 读 者 勉 励 我 们 在 此 基 础 上 进 一 步 摸 索 和 总 结 规 律 , 为 我 国 的 广 大 非 计 算 机 专 业 人 员 编 写 一 整 套 合 适 的 教 材 。近 年 来 , 全 国 许 多 专 家 、 学 者 在 这 个 领 域 作 了 有 益 的 探 索 , 写 出 了 一 批 受 到 群 众
7、欢 迎的 计 算 机 基 础 教 育 的 教 材 。 特 别 是 全 国 高 等 学 校 计 算 机 基 础 教 育 研 究 会 作 了 大 量 的 工 作 , 在 集 思 广 益 的 基 础 上 , 提 出 了 在 高 等 学 校 的 非 计 算 机 专 业 中 进 行 计 算 机 教 育 的 四 个 层 次的 设 想 , 受 到 广 泛 的 注 意 和 支 持 。 我 们 认 为 : 计 算 机 的 应 用 是 分 层 次 的 , 同 样 , 计 算 机 人 才 的 培 养 也 是 分 层 次 的 ; 非 计 算 机 专 业 中 各 个 领 域 的 情 况 不 同 , 也 不 能 一 律
8、要 求 , 在 进 行 计算 机 教 育 时 也 应 当 有 不 同 的 层 次 。 对 于 每 一 个 学 习 计 算 机 知 识 的 人 , 还 有 一 个 由 浅 入 深 、 逐 步 提 高 的 过 程 。我 们 认 为 , 编 辑 出 版 一 套 全 面 而 有 层 次 的 计 算 机 基 础 教 育 的 教 材 , 目 前 不 仅 是 十 分 必 要 的 , 而 且 是 完 全 有 条 件 的 。 在 全 国 高 等 学 校 计 算 机 基 础 教 育 研 究 会 和 许 多 同 志 的 积 极 推 动 和 清 华 大 学 出 版 社 的 大 力 支 持 下 , 我 们 决 定 编
9、辑 计 算 机 基 础 教 育 丛 书 。 它 的 对 象 是 : 高 等 学 校 非 计 算 机 专 业 的 学 生 、 计 算 机 继 续 教 育 或 培 训 班 的 学 员 、 广 大 在 职 自 学 人 员 。本 丛 书 包 括 计 算 机 科 学 技 术 的 一 些 最 基 本 的 内 容 , 例 如 计 算 机 各 种 常 用 的 高 级 语 言 、 计 算 机 软 件 技 术 基 础 、 计 算 机 硬 件 技 术 基 础 、 微 型 计 算 机 的 原 理 与 应 用 、 算 法 与 数 据 结 构 、 数 据 库 基 础 、 计 算 机 辅 助 设 计 基 础 、 微 机 网
10、 络 与 应 用 、 系 统 分 析 与 设 计 等 , 形 成 多 层 次 的 结 构 , 读 者 可 以 根 据 需 要 与 可 能 选 学 。本 丛 书 的 宗 旨 是 针 对 广 大 非 计 算 机 专 业 的 需 要 和 特 点 来 组 织 教 材 。 敢 于 破 除 框 框 , 从实 际 出 发 , 用 读 者 容 易 理 解 的 体 系 和 叙 述 方 法 , 深 入 浅 出 、 循 序 渐 进 地 帮 助 读 者 更 好 地 掌 握 课 程 的 基 本 内 容 。 希 望 我 们 的 丛 书 能 在 这 方 面 闯 出 自 己 的 风 格 , 在 实 践 中 接 受 检 验 。
11、 本 丛 书 的 作 者 大 多 数 是 高 等 学 校 中 有 较 丰 富 教 学 经 验 的 教 师 。 但 是 , 由 于 计 算 机 科 学 技 术 的 飞 速 发 展 以 及 我 们 的 水 平 有 限 , 丛 书 肯 定 会 存 在 许 多 不 足 , 丛 书 的 书 目 和 内 容 也 应 当 不 断 发 展 和 更 新 。 我 们 热 情 地 希 望 得 到 社 会 各 界 和 广 大 读 者 的 批 评 指 正 。主 编 谭 浩 强 林 定 基 刘 瑞 挺1988. 10 前 言计 算 机 软 件 技 术 基 础 于 1987 年 10 月 由 清 华 大 学 出 版 社 出
12、 版 第 一 版 。 通 过 几 年 的 教 学 实 践 , 广 泛 听 取 了 广 大 读 者 提 出 的 宝 贵 意 见 , 特 别 是 得 到 了 清 华 大 学 教 务 处 及 相 关 各 系 同 行 们 的 支 持 , 与 我 们 共 同 讨 论 确 定 了 第 二 版 的 内 容 大 纲 。为 使 书 的 内 容 精 练 , 第 二 版 中 删 除 了 原 书 中 部 分 章 节 , 保 留 了 概 论 、 数 据 结 构 、 操 作 系 统 、 数 据 库 系 统 这 四 部 分 软 件 技 术 的 基 本 内 容 。 并 在 内 容 上 进 行 了 修 改 与 补 充 , 加
13、强 了 系 统 性 和 应 用 性 。 为 便 于 教 学 和 自 学 , 每 章 后 面 都 附 有 习 题 。本 书 作 为 计 算 机 基 础 教 育 丛 书 之 一 , 适 用 对 象 为 非 计 算 机 专 业 的 本 科 生 、 研 究 生 及 广 大 从 事 计 算 机 应 用 工 作 的 科 技 人 员 。 在 计 算 机 应 用 日 益 广 泛 , 特 别 是 计 算 机 软 件 飞 速 发 展 的 今 天 , 广 大 计 算 机 应 用 软 件 的 开 发 者 和 使 用 者 迫 切 需 要 掌 握 计 算 机 软 件 的 有 关 知 识 。 本 书 包 括 了 计 算 机
14、 软 件 的 基 础 知 识 数 据 结 构 , 计 算 机 系 统 的 核 心 软 件 操 作 系 统 , 以 及 广 为 使 用 的 数 据 处 理 软 件 数 据 库 系 统 。 通 过 这 些 内 容 的 学 习 能 使 读 者 在 掌 握 这 些 知 识 的 基 础 上 , 进 一 步 提 高 使 用 计 算 机 的 能 力 和 研 制 应 用 软 件 的 水 平 。本 书 第 一 、 第 四 章 由 李 芳 芸 编 写 , 第 二 章 由 王 选 民 、 沈 被 娜 、 李 芳 芸 编 写 , 第 三 章 由 沈 被 娜 编 写 。我 们 对 在 第 二 版 的 修 订 出 版 过
15、 程 中 所 得 到 的 各 方 面 的 帮 助 和 支 持 表 示 感 谢 。 限 于 我 们 的 水 平 , 书 中 缺 点 和 问 题 难 免 , 敬 请 计 算 机 软 件 教 学 工 作 者 和 广 大 读 者 提 出 宝 贵 意 见 。编 者 1. 1 计 算 机 软 件 的 发 展 1 2.5.2 二 叉 树 及 其 性 质 531.1.1 汇 编 语 言 的 出 现 1 2.5.3 二 叉 树 的 遍 历 551.1.2 高 级 语 言 的 出 现 3 2.5.4 二 叉 树 的 应 用 571.1.3 操 作 系 统 的 形 成 5 2. 6 图 651.1.4 计 算 机
16、网 络 软 件 、 数 据 库 2.6.1 图 的 定 义 和 基 本 概 念 65软 件 的 出 现 7 2.6.2 图 的 存 储 结 构 68 1. 2 计 算 机 软 件 8 2.6.3 图 的 遍 历 711.2.1 计 算 机 系 统 资 源 8 2.6.4 最 短 路 径 731.2.2 计 算 机 软 件 定 义 9 2.6.5 关 键 路 径 法 78 1. 3 软 件 的 研 制 10 2. 7 检 索 811.3.1 软 件 工 程 学 的 基 本 概 念 10 2.7.1 线 性 检 索 法 811.3.2 系 统 分 析 与 设 计 方 法 介 绍 12 2.7.2
17、对 半 检 索 法 821.3.3 结 构 化 系 统 分 析 与 设 计 15 2.7.3 分 块 检 索 法 85 2. 1 概述 18 2.8.2 冒 泡 排 序 902.1.1 引 言 18 2.8.3 线 性 插 入 排 序 912.1.2 什 么 是 数 据 结 构 19 2.8.4 对 半 插 入 排 序 922.1.3 与 数 据 结 构 相 关 联 的 运 算 22 2.8.5 快 速 排 序 93 2. 2 线性 表 23 2.8.6 归 并 排 序 942.2.1 线 性 表 的 逻 辑 结 构 23 习 题 二 952.2.2 线 性 表 的 存 储 结 构 23 参
18、考 文 献 992.2.3 线 性 表 的 基 本 运 算 25 第 三 章 操 作 系 统 1012.2.4 线 性 表 的 应 用 28 3. 1 引 论 101 2. 3 数组 31 3.1.1 什 么 是 操 作 系 统 1012.3.1 数 组 的 定 义 31 3.1.2 操 作 系 统 的 分 类 1022.3.2 数 组 的 顺 序 存 储 结 构 31 3.1.3 操 作 系 统 的 功 能 和 特 性 1052.3.3 稀 疏 矩 阵 34 3. 2 存 储 管 理 108 2. 4 栈与 队 40 3.2.1 存 储 管 理 的 功 能 及 有 关2.4.1 栈 的 结
19、构 与 运 算 40 的 概 念 1082.4.2 栈 的 应 用 41 3.2.2 实 存 储 管 理 1102.4.3 队 的 结 构 与 运 算 45 3.2.3 虚 拟 存 储 管 理 116目 录第 一 章 概 论 1 2.5.1 树 的 定 义 及 其 存 储 结 构 52习 题 一 17参 考 文 献 17第 二 章 常 用 数 据 结 构 及 其 运 算 182.7.4 散 列 检 索 法 85 2. 8 排 序 892.8.1 选 择 排 序 902.4.4 队 的 应 用 46 2. 5 树 51 3. 3 处 理 机 管 理 1243.3.1 概 述 124 3.4.1
20、概 述 140 4.1.5 用 户 访 问 数 据 的 过 程 1953.4.2 设 备 分 配 程 序 143 4. 2 关 系 数 据 库 理 论 基 础 1963.4.3 设 备 处 理 程 序 144 4.2.1 关 系 代 数 1963.4.4 虚 拟 设 备 假 脱 机 4.2.2 数 据 依 赖 概 念 203系 统 145 4.2.3 规 范 化 理 论 2053.3.2 作 业 调 度 和 进 程 调 度 126 4.1.2 数 据 描 述 1873.3.3 并 行 程 序 设 计 中 的 4.1.3 三 类 数 据 模 型 189几 个 问 题 130 4.1.4 数 据
21、库 管 理 系 统 3.4 设 备 管 理 140 ( DBMS ) 194 3.5 文 件 管 理 1463.5.1 引 言 1463.5.2 文 件 结 构 及 存 取 方 式 1483.5.3 文 件 目 录 管 理 1503.5.4 文 件 存 储 空 间 管 理 1533.5.5 文 件 的 共 享 与 文 件 系 统 的安 全 性 1553.5.6 文 件 的 使 用 及 文 件 系 统 的一 般 模 型 156 3. 6 用 户 接 口 1604.2.4 结 构 化 查 询 语 言 SQ L 209 4.3 数 据 库 设 计 2134.3.1 数 据 库 设 计 的 目 的 及
22、 设 计阶 段 2134.3.2 概 念 结 构 设 计 工 具 E -R 方 法 2164.3.3 逻 辑 结 构 设 计 2204.3.4 物 理 结 构 设 计 2244.3.5 数 据 字 典 230 4.4 数 据 完 整 性 及 安 全 性 2303.6.1 概 述 160 4.4.1 数 据 完 整 性 2303.6.2 系 统 调 用 命 令 160 4.4.2 数 据 安 全 性 2323.6.3 脱 机 作 业 控 制 方 式 162 4.4.3 数 据 库 恢 复 2333.6.4 联 机 作 业 控 制 方 式 162 4. 5 分 布 式 数 据 库 系 统 234
23、3. 7 网 络 环 境 下 的 操 作 系 统 167 4.5.1 概 述 2343.7.1 计 算 机 网 络 167 4.5.2 分 布 式 数 据 库 的 系 统 类 型 及3.7.2 网 络 操 作 系 统 172 数 据 分 布 方 式 235习 题 三 182 4.5.3 分 布 式 数 据 库 系 统 设 计 中参 考 文 献 183 的 问 题 237第 四 章 数 据 库 系 统 184 习 题 四 241 4.1 绪论 184 参 考 文 献 2434.1.1 什 么 是 数 据 库 系 统 1849第 一 章 概 论 1.1 计 算 机 软 件 的 发 展自 1946
24、年 世 界 上 出 现 第 一 台 电 子 数 字 计 算 机 以 来 , 仅 仅 几 十 年 时 间 , 计 算 机 系 统 得到 了 飞 速 发 展 。 人 们 习 惯 按 组 成 计 算 机 的 元 件 的 演 变 来 划 分 计 算 机 的 发 展 阶 段 。 计 算 机 元 件 的 演 变 分 为 四 个 阶 段 , 计 算 机 的 发 展 也 相 应 分 为 四 个 时 代 。第 一 代 为 电 子 管 时 代 ( 19451959) 。 在 这 个 阶 段 计 算 机 的 主 要 逻 辑 元 件 是 电 子 管 , 存储 器 为 水 银 延 迟 线 或 静 电 屏 。第 二 代
25、为 晶 体 管 时 代 ( 19591965) 。 在 这 个 阶 段 计 算 机 的 主 要 逻 辑 元 件 是 晶 体 管 , 存储 器 由 磁 芯 构 造 。第 三 代 为 集 成 电 路 时 代 ( 19651971) 。 在 这 个 阶 段 计 算 机 主 要 逻 辑 元 件 是 集 成 电 路 ,存 储 器 除 磁 芯 外 还 增 加 了 镀 线 。第 四 代 为 大 规 模 集 成 电 路 时 代 ( 自 1971 年 开 始 ) 。 大 规 模 集 成 电 路 的 集 成 度 超 过 100个 门 电 路 , 每 平 方 英 寸 包 含 50000 个 元 件 以 上 , 存
26、储 器 用 M OS 和 双 极 型 元 件 。现 在 正 在 研 制 第 五 代 计 算 机 系 统 , 简 称 FGCS( Five Gener ation Comput er Syst em ) , 其 关 键 技 术 是 超 大 规 模 集 成 电 路 ( VL SI) 结 构 、 并 行 处 理 、 基 于 关 系 数 据 库 的 知 识 库 , 以 及 人 工 智 能 和 模 式 处 理 的 应 用 。 其 主 要 目 标 是 具 有 问 题 求 解 和 推 理 能 力 , 能 进 行 知 识 库 管理 , 具 有 智 能 接 口 。 因 此 F GCS 是 具 有 人 工 智 能
27、 知 识 信 息 处 理 能 力 和 非 数 值 运 算 能 力 的 高 性 能 计 算 机 。F GCS 硬 件 与 软 件 设 计 和 制 造 的 目 标 是 为 用 途 广 泛 的 知 识 工 程 服 务 , 因 此 应 该 包 括专 家 系 统 、 知 识 库 , 能 迅 速 进 行 相 联 检 索 , 能 进 行 逻 辑 推 理 操 作 。 在 程 序 结 构 和 软 件 中 利 用 并 行 方 式 达 到 高 速 运 行 , 而 且 机 器 和 使 用 者 之 间 可 以 使 用 自 然 语 言 和 图 像 进 行 通 信 。F GCS 为 实 现 以 上 目 标 和 功 能 按
28、照 三 个 子 系 统 组 织 工 作 , 第 一 是 管 理 知 识 库 子 系 统 ,第 二 是 问 题 求 解 和 推 理 子 系 统 , 第 三 是 人 与 机 器 之 间 的 交 互 子 系 统 。图 1.1 示 出 第 五 代 计 算 机 系 统 的 硬 件 、 软 件 及 与 人 的 关 系 。 硬 件 与 软 件 的 关 联 随 计 算 机 的 发 展 越 来 越 紧 密 , 在 FGCS 中 就 充 分 显 示 出 硬 件 、 软 件 及 人 的 统 一 。在 整 个 计 算 机 的 发 展 过 程 , 随 着 计 算 机 硬 件 技 术 的 不 断 发 展 及 广 泛 使
29、用 , 软 件 也 逐 步 丰 富 与 完 善 , 而 软 件 的 发 展 又 大 大 地 促 进 了 硬 件 的 发 展 , 最 终 成 为 一 个 完 整 统 一 的 整 体 。计 算 机 软 件 也 有 标 志 其 发 展 的 四 个 阶 段 , 下 面 作 一 个 详 细 的 介 绍 。1.1.1 汇 编 语 言 的 出 现一 台 没 有 装 入 任 何 软 件 的 计 算 机 , 我 们 称 它 为 裸 机 。 裸 机 只 认 识 “0”、 “1”两 种 代 码 , 程 序 人 员 只 能 用 机 器 指 令 或 称 机 器 语 言 来 编 写 程 序 。 这 样 就 要 求 程 序
30、 设 计 人 员 熟 记 计 算 机 的 全 部 指 令 , 工 作 量 很 大 且 容 易 出 错 又 不 易 于 修 改 。 由 于 各 种 计 算 机 的 机 器 指 令 不 一 定 相2图 1.1同 , 所 编 制 的 程 序 只 适 用 于 某 一 特 定 的 机 器 , 局 限 性 很 大 。 在 早 期 的 计 算 机 中 , 采 用 了 建 立 标 准 子 程 序 或 标 准 程 序 库 的 办 法 , 这 虽 然 在 一 定 程 度 上 缓 和 了 工 作 量 大 的 矛 盾 , 但 不 能 从 根 本 上 解 决 问 题 。 为 了 摆 脱 用 机 器 指 令 编 码 的
31、困 难 , 出 现 了 用 指 令 符 号 来 编 制 程 序 的 办法 。 用 指 令 符 号 编 制 的 程 序 称 为 符 号 程 序 , 在 编 制 程 序 时 , 只 要 记 住 用 英 文 名 称 缩 写 的 指 令 的 助 记 符 就 可 以 了 。 例 如 取 数 用 L DA 、 加 法 用 ADD 等 。 在 符 号 语 言 的 基 础 上 进 一 步 发 展 就 是 汇 编 语 言 。用 汇 编 语 言 编 制 程 序 要 比 用 机 器 的 指 令 代 码 方 便 得 多 , 便 于 检 查 和 修 改 错 误 , 而 且 指 令 、 原 始 数 据 和 结 果 数 据
32、 的 存 放 单 元 可 由 机 器 自 动 分 配 。然 而 , 计 算 机 的 内 部 结 构 是 根 据 指 令 代 码 设 计 的 , 也 就 是 说 它 只 能 识 别 和 理 解 用 二 进 制 代 码 表 示 的 机 器 指 令 , 不 能 识 别 和 理 解 指 令 助 记 符 。 因 此 , 人 们 用 汇 编 语 言 编 出 程 序 后 , 必 须 将 此 程 序 翻 译 为 机 器 语 言 程 序 , 称 为 目 的 程 序 ( 目 标 程 序 ) , 机 器 才 能 执 行 并 算 出 结果 。 这 个 翻 译 工 作 是 由 预 先 装 入 计 算 机 中 的 “汇
33、编 程 序 ”完 成 的 。 汇 编 程 序 是 一 种 “编 译 ” 程 序 , 计 算 机 有 了 它 , 才 能 允 许 用 户 在 该 计 算 机 上 使 用 汇 编 语 言 编 制 程 序 , 这 个 程 序 称 为汇 编 语 言 程 序 或 称 为 汇 编 源 程 序 。 汇 编 程 序 是 计 算 机 必 不 可 少 的 软 件 。用 汇 编 语 言 写 的 程 序 和 用 机 器 语 言 写 的 程 序 有 相 同 之 处 , 又 有 不 同 之 处 。 相 同 之 处 在 于 程 序 主 体 部 分 几 乎 是 一 一 对 应 的 , 不 同 的 是 0、 1 数 码 换 成
34、 了 符 号 , 地 址 换 成 了 可 读 的 名 字 , 另 外 还 增 加 了 关 于 工 作 单 元 和 常 数 单 元 的 成 分 。 这 些 不 同 之 处 也 正 是 汇 编 语 言 的 优点 , 使 得 用 汇 编 语 言 编 写 的 程 序 好 写 、 好 读 、 好 改 。由 于 汇 编 语 言 也 是 依 赖 于 机 器 的 , 因 此 称 它 为 面 向 机 器 的 语 言 。 使 用 时 必 须 了 解 机 器 的 某 些 细 节 , 如 累 加 器 的 个 数 、 每 条 指 令 的 执 行 速 度 、 内 存 容 量 等 等 。 但 也 正 由 于 它 依 赖 于
35、3机 器 , 就 可 以 与 机 器 语 言 程 序 一 样 可 结 合 机 器 特 点 编 出 短 小 、 高 质 量 、 执 行 速 度 快 的 程 序 。 所 以 , 时 至 今 日 , 汇 编 语 言 仍 起 着 重 要 作 用 。 在 一 些 计 算 机 公 司 中 仍 用 汇 编 语 言 编 写 系 统 软 件 , 以 保 证 高 质 量 软 件 的 功 效 。汇 编 程 序 的 主 要 功 能 是 把 用 汇 编 语 言 编 写 的 源 程 序 加 工 成 机 器 语 言 写 的 目 标 程 序 。 这 由 三 个 过 程 来 完 成 , 如 图 1.2 所 示 。图 1.2第
36、一 个 过 程 , 用 汇 编 语 言 编 制 出 源 程 序 ;第 二 个 过 程 , 将 源 程 序 输 入 到 计 算 机 内 , 由 汇 编 程 序 把 它 加 工 成 计 算 机 能 够 执 行 的 目 标 程 序 ;第 三 个 过 程 , 执 行 目 标 程 序 , 得 到 计 算 结 果 。源 程 序 由 一 串 符 号 化 的 指 令 组 成 , 一 般 采 用 标 准 的 ASCI I 码 , 当 汇 编 程 序 加 工 源 程序 时 , 总 是 从 头 到 尾 , 一 个 符 号 接 着 一 个 符 号 地 阅 读 , 称 为 扫 描 源 程 序 。 从 头 到 尾 扫 描
37、 一 次 源 程 序 为 扫 描 一 遍 。 一 般 汇 编 程 序 均 扫 描 两 遍 , 第 一 遍 把 源 程 序 中 所 有 出 现 的 名 字 进 行 造 表 , 确 定 每 个 名 字 将 占 用 的 内 存 位 置 。 第 二 遍 扫 描 时 , 按 所 造 出 的 表 , 把 每 条 符 号 化 指 令 代 换 成 数 码 形 式 的 机 器 指 令 。此 外 汇 编 程 序 还 具 有 一 些 附 加 的 功 能 :查 错 功 能 : 当 用 户 写 的 汇 编 语 言 不 符 合 汇 编 语 言 所 要 求 的 书 写 格 式 、 不 符 合 语 法 要 求 时 , 汇 编
38、 程 序 指 出 源 程 序 的 位 置 和 出 了 什 么 性 质 的 错 误 。修 改 功 能 : 汇 编 程 序 提 供 修 改 源 程 序 的 简 便 办 法 , 用 户 把 修 改 的 要 求 提 供 给 汇 编 程 序 , 由 汇 编 程 序 实 现 对 源 程 序 的 自 动 修 改 。打 印 功 能 : 在 汇 编 过 程 中 , 当 发 现 错 误 时 , 将 错 误 信 息 印 出 来 , 必 要 时 可 印 出 名 字 表 及 目 标 程 序 , 还 可 印 出 修 改 后 源 程 序 的 文 本 等 。1.1.2 高 级 语 言 的 出 现采 用 汇 编 语 言 编 制
39、 程 序 , 仍 要 记 住 机 器 指 令 的 助 记 符 , 且 所 编 的 程 序 只 能 针 对 某 一 类 机 器 。 为 了 解 决 这 些 问 题 , 出 现 了 高 级 语 言 程 序 。 它 使 得 程 序 编 制 工 作 可 以 从 专 职 程 序 设计 员 手 中 解 放 出 来 。 高 级 语 言 的 出 现 大 大 方 便 了 程 序 的 设 计 工 作 , 也 促 进 了 计 算 机 的 应用 , 使 得 计 算 机 的 使 用 由 计 算 机 专 业 人 员 扩 大 到 各 行 各 业 。高 级 语 言 是 按 照 一 定 的 “语 法 规 则 ”, 由 表 达
40、各 种 意 义 的 “词 ”和 “数 学 公 式 ”组 成 的 。 通 常 把 用 程 序 设 计 语 言 编 制 的 程 序 称 为 源 程 序 , 而 计 算 机 进 行 运 算 仍 要 根 据 目 的 程 序 来 进行 。 这 中 间 也 如 同 汇 编 程 序 一 样 , 要 有 一 个 “编 译 器 ”, 把 源 程 序 “翻 译 ”成 目 标 程 序 。 这 种 程 序 设 计 的 方 法 比 较 接 近 人 们 的 习 惯 , 编 出 的 源 程 序 与 具 体 机 器 的 指 令 系 统 无 关 , 可 适 用 于 任 何 机 器 , 因 此 人 们 把 程 序 设 计 语 言
41、 称 为 高 级 语 言 。目 前 , 世 界 上 有 几 百 种 程 序 设 计 语 言 , 较 通 用 的 也 有 几 十 种 , 各 有 其 特 点 。 我 们 以 常 用4的 几 种 语 言 为 例 , 介 绍 其 特 点 。FOR TR AN 语 言 : 最 常 用 的 科 学 与 工 程 计 算 的 语 言 。 其 程 序 结 构 是 分 块 结 构 , 一 个 F OR T R A N 程 序 包 含 一 个 主 程 序 块 和 若 干 个 子 程 序 块 。 程 序 的 执 行 由 主 程 序 块 开 始 , 主 程 序 块 可 以 调 用 子 程 序 块 , 子 程 序 块
42、间 也 可 以 调 用 , 但 子 程 序 块 不 可 以 调 用 主 程 序 块 。 另 外 , 程 序 中 的 变 量 地 址 是 静 态 分 配 的 , 不 能 包 含 递 归 子 程 序 和 动 态 数 组 。 总 的 来 讲 , F OR T R A N 程 序 的 结 构 比 较 简 单 , 而 且 可 以 分 块 书 写 、 分 块 编 译 , 故 使 用 起 来 灵 活 、 方 便 。AL GOL 60 语 言 : 主 要 用 于 科 学 与 工 程 计 算 的 语 言 , 其 程 序 结 构 是 分 程 序 嵌 套 结构 。 整 个 A LGO L 60 是 一 个 大 分
43、程 序 , 分 程 序 中 又 可 以 嵌 套 进 一 层 的 分 程 序 , 其 嵌 套 的 深 度 可 以 任 意 , 内 层 分 程 序 可 以 使 用 外 层 分 程 序 定 义 的 量 , 反 之 则 不 可 以 。 其 变 量 地 址 是 动 态 分 配 的 , 在 进 入 分 程 序 时 分 配 , 在 退 出 分 程 序 时 释 放 , 因 此 节 省 内 存 。 而 且 允 许 递 归 子 程 序 和 动 态 数 组 。 其 程 序 结 构 比 较 严 谨 、 清 晰 。COBOL 语 言 : FOR T R AN 和 AL GOL 60 语 言 都 是 适 于 数 据 处
44、理 的 计 算 机 语 言 , COBOL 语 言 中 引 入 了 按 层 次 结 构 来 描 述 的 数 据 部 分 , 这 种 数 据 描 述 形 式 完 全 适 合 于 现实 生 活 中 各 种 管 理 信 息 。 另 外 , 其 程 序 设 计 采 用 了 自 然 语 言 的 程 序 设 计 风 格 , 程 序 的 书 写 采 用 接 近 英 语 的 形 式 。 由 于 这 些 原 因 , 在 商 业 、 工 业 和 行 政 管 理 部 门 被 广 泛 地 使 用 。PASCAL 语 言 : 这 是 一 种 典 型 的 系 统 结 构 化 程 序 设 计 的 语 言 , PA SCAL
45、 语 言 的 出现 和 结 构 程 序 设 计 技 术 的 发 展 推 动 了 编 译 程 序 工 程 技 术 的 发 展 。 PASCA L 语 言 强 调 概 念 清 晰 , 实 现 简 化 , 方 便 用 户 ; 强 调 程 序 的 可 靠 性 , 易 于 验 证 ; 有 较 好 的 结 构 , 减 少 了 错 误 的 发 生 并 易 于 阅 读 。 因 此 虽 然 问 世 较 晚 , 但 却 得 到 人 们 的 极 大 重 视 。C 语 言 : C 语 言 是 1972 年 设 计 出 并 首 先 在 U NI X 操 作 系 统 、 P DP -11 机 器 上 实 现 的 。 U
46、N IX 操 作 系 统 是 用 C 语 言 书 写 的 , C 语 言 也 与 U NI X 操 作 系 统 紧 密 地 联 系 在 一 起 。 但 目 前 , C 语 言 却 独 立 于 U N IX 系 统 , 独 立 于 PDP-11 系 列 而 蓬 勃 发 展 了 起 来 。 用 C 误 言 编 写 的 程 序 很 容 易 移 植 , 所 以 具 有 “可 移 植 的 汇 编 语 言 ”的 称 号 。 此 外 , 由 于 它 具 有 丰 富 的 运 算 符 和 表 达 式 , 以 及 先 进 的 控 制 结 构 、 数 据 结 构 , 因 此 还 具 有 表 达 能 力 强 、 编
47、译 出 的 目 标 程 序 质 量 高 、 语 言 简 单 灵 活 、 易 于 实 现 等 特 点 。C 语 言 不 仅 可 用 来 写 操 作 系 统 、 编 译 程 序 、 数 据 库 管 理 系 统 等 系 统 软 件 , 也 可 以 用 来 写 各 种 应 用 软 件 , 例 如 企 事 业 管 理 、 办 公 自 动 化 、 工 业 自 动 控 制 、 图 形 处 理 等 。 C 语 言 已 成 为 当 今 最 流 行 的 程 序 设 计 语 言 。PL / 1 语 言 : 这 是 一 种 大 型 通 用 语 言 , 它 综 合 了 FOR T RA N 、 AL GOL 60、 C
48、OBOL 等 语 言 的 特 点 。 其 表 达 式 和 语 法 来 自 FOR T RA N 语 言 , 分 程 序 结 构 和 类 型 说 明 来 自 A L GOL 60 语 言 , 数 据 描 述 取 自 COBOL 语 言 , 控 制 结 构 和 总 体 结 构 则 兼 有 FOR T RA N 和 A LGO L 60 语 言 的 特 点 。 它 包 含 了 各 种 功 能 的 语 言 成 分 , 既 能 进 行 数 值 计 算 又 能 进 行 数 据 处 理 ; 可 以 作 表 处 理 , 又 可 以 作 符 号 串 处 理 ; 还 具 有 格 式 丰 富 的 输 入 / 输 出
49、 设 施 和 中 断 并 行 等 能 力 。 用 户 可 以 根 据 需 要 选 用 它 的 一 部 分 或 全 部 。LI SP 语 言 : 在 计 算 机 的 应 用 中 有 一 个 非 常 有 意 义 的 领 域 叫 做 非 数 值 处 理 , 例 如 公式 的 推 导 、 用 机 器 证 明 定 理 、 下 棋 、 印 刷 排 版 、 编 辑 修 改 、 版 面 设 计 、 机 器 翻 译 、 语 言 研 究 等 人 工 智 能 问 题 。 这 些 非 数 值 处 理 问 题 是 FOR T RA N 、 A LGOL 60、 COBOL 等 语 言 不 能 解 决 的 , 例 如 ( X+ Y ) 2