图书信息
图书目录
数字化资源
Abook数字课程

编译技术




本书为“基于系统能力培养的计算机专业课程建设研究”项目规划教材,同时也是国家精品资源共享课程主讲教材。本书对传统编译技术课程内容进行了结构性改革,首先暂时抛开大量形式化方法,先给学生一个完整的编译过程,以及这个过程中涉及的编译技术,在该过程中同时介绍相关的理论和方法。对于编译过程中涉及的形式化方法、编译自动生成技术、编译优化技术等,则将其放在了一个完整的编译过程之后,作为必要的补充。

全书共分三部分。其中,第一部分基础篇(1~10章),包含编译技术概述、语言与文法基础、一个简单编译器的构造(一个完整的编译过程)。〖JP2〗第二部分提高篇(11~16章),重点介绍编译程序的自动化生成技术和代码优化及面向目标机的代码生成技术。第三部分实例篇(17~18章),给出两个小型编译系统的完整设计。与教材配套的课程网站(易课程网、爱课程网)包括课程教学视频、电子教案、案例源代码等教学资源。

本书可作为本科计算机类专业编译技术课程教材,也可供相关技术人员参考使用。



作者:
张莉 史晓华 杨海燕 金茂忠

定价:
48.00 元

出版时间:
2016-09-01

ISBN:
978-7-04-046317-0

物料号:
46317-00

读者对象:
高等教育

一级分类:
计算机/教育技术类

二级分类:
计算机类专业核心课程

三级分类:
编译原理

重点项目:
暂无

版面字数:
590千字

开本:
16开

装帧形式:
平装

页数:
479

最新
印次时间:
2026年01月
  • 目录
    • 前辅文
      • 第1部分 基础篇
        • 第1章 编译概述
          • 1.1 什么是程序设计语言
            • 1.1.1 程序设计语言的定义方法
              • 1.1.2 程序设计语言的处理系统
                • 1.1.3 编译程序和解释程序
                • 1.2 与编译程序相关的处理系统
                  • 1.3 编译程序和程序设计环境
                    • 1.4 编译程序的构造
                      • 1.5 编译技术在软件工程中的应用
                        • 练习1
                      • 第2章 文法和语言的概念和表示
                        • 2.1 文法的非形式讨论
                          • 2.1.1 语法树
                            • 2.1.2 规则
                              • 2.1.3 由规则推导句子
                                • 练习2-1
                                • 2.2 符号、符号串及其集合的运算
                                  • 2.2.1 字母表和符号串
                                    • 2.2.2 符号串及其集合的运算
                                      • 练习2-2
                                      • 2.3 文法和语言的形式定义
                                        • 2.3.1 文法的形式定义
                                          • 2.3.2 推导的形式定义
                                            • 2.3.3 语言的形式定义
                                              • 2.3.4 递归规则与递归文法
                                                • 2.3.5 短语、简单短语和句柄
                                                  • 练习2-3
                                                  • 2.4 语法树和二义性
                                                    • 2.4.1 推导与语法树
                                                      • 2.4.2 文法的二义性
                                                        • 练习2-4
                                                        • 2.5 符号串的分析
                                                          • 2.5.1 自顶向下分析
                                                            • 2.5.2 自底向上分析
                                                            • 2.6 有关文法的实用限制
                                                              • 练习2-5
                                                              • 2.7 扩充的BNF表示和语法图
                                                                • 2.7.1 扩充的BNF表示
                                                                  • 2.7.2 语法图
                                                                  • 2.8 文法和语言分类
                                                                  • 第3章 词法分析程序的设计
                                                                    • 3.1 词法分析程序的功能及实现方案
                                                                      • 3.2 单词的种类及词法分析程序的输出形式
                                                                        • 3.3 正则文法及其状态图
                                                                          • 3.3.1 状态图
                                                                            • 3.3.2 状态图的使用
                                                                            • 3.4 词法分析程序的设计与实现
                                                                              • 3.4.1 文法及其状态图
                                                                                • 3.4.2 词法分析程序的构造
                                                                                  • 3.4.3 词法分析程序的实现
                                                                                    • 练习3
                                                                                  • 第4章 语法分析(一)
                                                                                    • 4.1 自顶向下分析方法
                                                                                      • 4.1.1 带回溯的自顶向下分析方法
                                                                                        • 4.1.2 存在的问题及解决办法
                                                                                          • 练习4-1
                                                                                          • 4.2 递归下降分析法
                                                                                            • 4.3 基于递归下降分析法的语法分析程序构造
                                                                                              • 练习4-2
                                                                                            • 第5章 符号表管理技术
                                                                                              • 5.1 概述
                                                                                                • 5.1.1 符号表的概念及建立和访问时间
                                                                                                  • 5.1.2 符号表的重要性和作用
                                                                                                    • 5.1.3 在符号表上的操作
                                                                                                    • 5.2 符号表的组织和内容
                                                                                                      • 5.2.1 符号表的结构与内容
                                                                                                        • 5.2.2 符号表的组织方式
                                                                                                        • 5.3 非分程序结构语言的符号表组织
                                                                                                          • 5.3.1 标识符的作用域及基本处理方法
                                                                                                            • 5.3.2 符号表的组织方式
                                                                                                            • 5.4 分程序结构语言的符号表组织
                                                                                                              • 5.4.1 标识符的作用域及基本处理方法
                                                                                                                • 5.4.2 定位和重定位操作
                                                                                                                  • 5.4.3 符号表的组织方式
                                                                                                                    • 练习5
                                                                                                                  • 第6章 运行时的存储组织及管理
                                                                                                                    • 6.1 静态存储分配
                                                                                                                      • 练习6-1
                                                                                                                      • 6.2 动态存储分配
                                                                                                                        • 6.2.1 活动记录
                                                                                                                          • 6.2.2 参数区
                                                                                                                            • 6.2.3 display区
                                                                                                                              • 6.2.4 运行时的地址计算
                                                                                                                                • 6.2.5 递归过程的处理
                                                                                                                                • 6.3 内存垃圾回收器
                                                                                                                                  • 6.3.1 引用计数
                                                                                                                                    • 6.3.2 标记和清除垃圾回收器
                                                                                                                                      • 6.3.3 标记紧缩算法
                                                                                                                                        • 6.3.4 拷贝回收算法
                                                                                                                                          • 6.3.5 分代垃圾回收器
                                                                                                                                            • 练习6-2
                                                                                                                                          • 第7章 源程序的中间形式
                                                                                                                                            • 7.1 波兰表示
                                                                                                                                              • 7.2 N-元表示
                                                                                                                                                • 7.3 抽象语法树
                                                                                                                                                  • 7.4 抽象机代码
                                                                                                                                                    • 7.4.1 可移植性和抽象机
                                                                                                                                                      • 7.4.2 Pascal的P-code抽象机
                                                                                                                                                        • 7.4.3 P-code指令
                                                                                                                                                          • 练习7
                                                                                                                                                        • 第8章 错误处理
                                                                                                                                                          • 8.1 概述
                                                                                                                                                            • 8.2 错误的分类
                                                                                                                                                              • 8.3 错误的检查与报告
                                                                                                                                                                • 8.4 错误处理技术
                                                                                                                                                                  • 8.4.1 错误改正
                                                                                                                                                                    • 8.4.2 错误局部化处理
                                                                                                                                                                      • 8.4.3 目标程序运行时错误检测与处理
                                                                                                                                                                        • 8.4.4 遏止重复的错误信息
                                                                                                                                                                      • 第9章 语法制导翻译技术
                                                                                                                                                                        • 9.1 翻译文法
                                                                                                                                                                          • 9.2 语法制导翻译
                                                                                                                                                                            • 9.3 属性翻译文法
                                                                                                                                                                              • 9.3.1 综合属性
                                                                                                                                                                                • 9.3.2 继承属性
                                                                                                                                                                                  • 9.3.3 属性翻译文法
                                                                                                                                                                                    • 9.3.4 属性翻译文法举例:算术表达式的翻译
                                                                                                                                                                                      • 练习9-1
                                                                                                                                                                                      • 9.4 自顶向下语法制导翻译
                                                                                                                                                                                        • 9.4.1 翻译文法的自顶向下翻译
                                                                                                                                                                                          • 练习9-2
                                                                                                                                                                                            • 9.4.2 属性翻译文法的自顶向下翻译
                                                                                                                                                                                              • 练习9-3
                                                                                                                                                                                            • 第10章 语义分析和代码生成
                                                                                                                                                                                              • 10.1 语义分析的概念
                                                                                                                                                                                                • 10.2 栈式抽象机及其汇编指令
                                                                                                                                                                                                  • 10.3 声明语句的处理
                                                                                                                                                                                                    • 10.3.1 常量类型
                                                                                                                                                                                                      • 10.3.2 简单变量
                                                                                                                                                                                                        • 10.3.3 数组变量
                                                                                                                                                                                                          • 10.3.4 记录变量
                                                                                                                                                                                                            • 10.3.5 过程声明
                                                                                                                                                                                                            • 10.4 表达式语句
                                                                                                                                                                                                              • 10.5 赋值语句
                                                                                                                                                                                                                • 10.6 控制语句
                                                                                                                                                                                                                  • 10.6.1 if语句
                                                                                                                                                                                                                    • 10.6.2 分情形语句
                                                                                                                                                                                                                      • 10.6.3 repeat-while语句
                                                                                                                                                                                                                        • 10.6.4 for循环语句
                                                                                                                                                                                                                        • 10.7 过程调用和返回语句
                                                                                                                                                                                                                          • 10.7.1 参数的基本传递形式
                                                                                                                                                                                                                            • 10.7.2 过程调用
                                                                                                                                                                                                                              • 10.7.3 返回语句和过程终止
                                                                                                                                                                                                                              • 10.8 输入/输出语句
                                                                                                                                                                                                                                • 10.8.1 输入语句
                                                                                                                                                                                                                                  • 10.8.2 输出语句
                                                                                                                                                                                                                                    • 10.9 编译程序的辅助功能
                                                                                                                                                                                                                                      • 练习10
                                                                                                                                                                                                                                  • 第2部分 提高篇
                                                                                                                                                                                                                                    • 第11章 词法分析程序的自动生成技术
                                                                                                                                                                                                                                      • 11.1 正则文法与正则表达式
                                                                                                                                                                                                                                        • 11.1.1 正则表达式
                                                                                                                                                                                                                                          • 11.1.2 正则文法转换为正则表达式
                                                                                                                                                                                                                                            • 11.1.3 正则表达式转换为正则文法
                                                                                                                                                                                                                                            • 11.2 有穷自动机
                                                                                                                                                                                                                                              • 11.2.1 确定的有穷自动机
                                                                                                                                                                                                                                                • 11.2.2 不确定的有穷自动机
                                                                                                                                                                                                                                                  • 11.2.3 NFA的确定化
                                                                                                                                                                                                                                                    • 11.2.4 确定有穷自动机的化简(最小化)
                                                                                                                                                                                                                                                      • 11.2.5 正则表达式与有穷自动机的等价性
                                                                                                                                                                                                                                                        • 11.2.6 正则文法与有穷自动机的等价性
                                                                                                                                                                                                                                                        • 11.3 词法分析程序的自动生成器
                                                                                                                                                                                                                                                          • 11.3.1 Lex源程序(Lex的输入文件)
                                                                                                                                                                                                                                                            • 11.3.2 Lex的实现
                                                                                                                                                                                                                                                              • 练习11
                                                                                                                                                                                                                                                            • 第12章 语法分析(二)
                                                                                                                                                                                                                                                              • 12.1 LL(1)分析方法
                                                                                                                                                                                                                                                                • 12.1.1 LL(1)分析器的逻辑结构及工作过程
                                                                                                                                                                                                                                                                  • 12.1.2 LL(1)分析表的构造方法
                                                                                                                                                                                                                                                                    • 练习12-1
                                                                                                                                                                                                                                                                    • 12.2 自底向上分析方法
                                                                                                                                                                                                                                                                      • 12.3 算法优先分析法
                                                                                                                                                                                                                                                                        • 12.3.1 方法概述
                                                                                                                                                                                                                                                                          • 12.3.2 直观算符优先分析法
                                                                                                                                                                                                                                                                            • 12.3.3 算符优先分析法的进一步讨论
                                                                                                                                                                                                                                                                              • 练习12-2
                                                                                                                                                                                                                                                                              • 12.4 LR语法分析方法
                                                                                                                                                                                                                                                                                • 12.4.1 概念和术语
                                                                                                                                                                                                                                                                                  • 练习12-3
                                                                                                                                                                                                                                                                                    • 12.4.2 LR分析算法
                                                                                                                                                                                                                                                                                      • 练习12-4
                                                                                                                                                                                                                                                                                        • 12.4.3 LR文法
                                                                                                                                                                                                                                                                                          • 12.4.4 构造SLR语法分析表
                                                                                                                                                                                                                                                                                            • 练习12-5
                                                                                                                                                                                                                                                                                              • 12.4.5 构造规范LR语法分析表
                                                                                                                                                                                                                                                                                                • 练习12-6
                                                                                                                                                                                                                                                                                                  • 12.4.6 构造LALR语法分析表
                                                                                                                                                                                                                                                                                                    • 练习12-7
                                                                                                                                                                                                                                                                                                  • 第13章 语法制导翻译技术(二)*
                                                                                                                                                                                                                                                                                                    • 13.1 * LL(1)文法的语法制导翻译
                                                                                                                                                                                                                                                                                                      • 13.1.1 * 翻译文法的自顶向下翻译——LL(1)翻译器
                                                                                                                                                                                                                                                                                                        • 练习13-1
                                                                                                                                                                                                                                                                                                          • 13.1.2 * 属性文法自顶向下翻译的实现——下推机法
                                                                                                                                                                                                                                                                                                            • 练习13-2
                                                                                                                                                                                                                                                                                                            • 13.2 *自底向上语法制导翻译
                                                                                                                                                                                                                                                                                                              • 13.2.1 波兰翻译
                                                                                                                                                                                                                                                                                                                • 13.2.2 S-属性文法
                                                                                                                                                                                                                                                                                                                  • 练习13-3
                                                                                                                                                                                                                                                                                                                • 第14章 代码优化
                                                                                                                                                                                                                                                                                                                  • 14.1 基本块和流图
                                                                                                                                                                                                                                                                                                                    • 14.2 基本块内优化
                                                                                                                                                                                                                                                                                                                      • 14.2.1 基本块的DAG图表示
                                                                                                                                                                                                                                                                                                                        • 14.2.2 消除局部公共子表达式
                                                                                                                                                                                                                                                                                                                          • 14.2.3 数组、指针及函数调用
                                                                                                                                                                                                                                                                                                                            • 14.2.4 从DAG图重新导出中间代码
                                                                                                                                                                                                                                                                                                                              • 14.2.5 窥孔优化
                                                                                                                                                                                                                                                                                                                                • 14.2.6 常数合并和传播
                                                                                                                                                                                                                                                                                                                                • 14.3 全局优化
                                                                                                                                                                                                                                                                                                                                  • 14.3.1 数据流分析
                                                                                                                                                                                                                                                                                                                                    • 14.3.2 活跃变量分析
                                                                                                                                                                                                                                                                                                                                      • 14.3.3 定义-使用链、网和冲突图
                                                                                                                                                                                                                                                                                                                                        • 14.3.4 消除全局公共子表达式
                                                                                                                                                                                                                                                                                                                                          • 14.3.5 复制传播
                                                                                                                                                                                                                                                                                                                                            • 14.3.6 死代码删除
                                                                                                                                                                                                                                                                                                                                            • 14.4 循环优化
                                                                                                                                                                                                                                                                                                                                              • 14.4.1 循环交换
                                                                                                                                                                                                                                                                                                                                                • 14.4.2 循环展开
                                                                                                                                                                                                                                                                                                                                                  • 14.4.3 代码外提和循环强度削弱
                                                                                                                                                                                                                                                                                                                                                    • 练习14
                                                                                                                                                                                                                                                                                                                                                  • 第15章 目标代码生成及优化
                                                                                                                                                                                                                                                                                                                                                    • 15.1 微处理器体系结构简介
                                                                                                                                                                                                                                                                                                                                                      • 15.1.1 指令集架构
                                                                                                                                                                                                                                                                                                                                                        • 15.1.2 存储层次架构
                                                                                                                                                                                                                                                                                                                                                          • 15.1.3 流水线
                                                                                                                                                                                                                                                                                                                                                          • 15.2 地址空间
                                                                                                                                                                                                                                                                                                                                                            • 15.2.1 程序地址空间的实例分析
                                                                                                                                                                                                                                                                                                                                                              • 15.2.2 程序运行栈的设计
                                                                                                                                                                                                                                                                                                                                                              • 15.3 寄存器的分配和指派
                                                                                                                                                                                                                                                                                                                                                                • 15.3.1 全局寄存器分配
                                                                                                                                                                                                                                                                                                                                                                  • 15.3.2 临时寄存器分配
                                                                                                                                                                                                                                                                                                                                                                    • 15.4 指令选择
                                                                                                                                                                                                                                                                                                                                                                      • 练习15
                                                                                                                                                                                                                                                                                                                                                                    • 第16章 编译程序生成方法和工具
                                                                                                                                                                                                                                                                                                                                                                      • 16.1 编译程序的书写语言
                                                                                                                                                                                                                                                                                                                                                                        • 16.2 自展
                                                                                                                                                                                                                                                                                                                                                                          • 16.3 移植
                                                                                                                                                                                                                                                                                                                                                                            • 16.4 编译程序的生成工具
                                                                                                                                                                                                                                                                                                                                                                              • 16.4.1 语法分析器的生成器YACC
                                                                                                                                                                                                                                                                                                                                                                                • 16.4.2 用YACC处理二义文法
                                                                                                                                                                                                                                                                                                                                                                                  • 16.4.3 用Lex建立YACC的词法分析器
                                                                                                                                                                                                                                                                                                                                                                                    • 16.4.4 YACC的错误恢复
                                                                                                                                                                                                                                                                                                                                                                                      • 练习16
                                                                                                                                                                                                                                                                                                                                                                                  • 第3部分 实例篇
                                                                                                                                                                                                                                                                                                                                                                                    • 第17章 PL/0简单编译系统
                                                                                                                                                                                                                                                                                                                                                                                      • 17.1 PL/0语言
                                                                                                                                                                                                                                                                                                                                                                                        • 17.2 PL/0编译系统结构
                                                                                                                                                                                                                                                                                                                                                                                          • 17.3 PL/0的词法分析
                                                                                                                                                                                                                                                                                                                                                                                            • 17.4 PL/0的语法分析
                                                                                                                                                                                                                                                                                                                                                                                              • 17.5 出错处理
                                                                                                                                                                                                                                                                                                                                                                                                • 17.6 目标代码的生成和解释执行
                                                                                                                                                                                                                                                                                                                                                                                                  • 17.7 PL/0程序编译和运行举例
                                                                                                                                                                                                                                                                                                                                                                                                  • 第18章 Pascal-S编译系统
                                                                                                                                                                                                                                                                                                                                                                                                    • 18.1 Pascal-S语言
                                                                                                                                                                                                                                                                                                                                                                                                      • 18.2 Pascal-S编译程序的结构
                                                                                                                                                                                                                                                                                                                                                                                                        • 18.3 Pascal-S编译程序
                                                                                                                                                                                                                                                                                                                                                                                                          • 18.3.1 表格
                                                                                                                                                                                                                                                                                                                                                                                                            • 18.3.2 编译初启
                                                                                                                                                                                                                                                                                                                                                                                                              • 18.3.3 实用程序
                                                                                                                                                                                                                                                                                                                                                                                                                • 18.3.4 词法分析及处理
                                                                                                                                                                                                                                                                                                                                                                                                                  • 18.3.5 语法分析处理
                                                                                                                                                                                                                                                                                                                                                                                                                    • 18.3.6 出错处理
                                                                                                                                                                                                                                                                                                                                                                                                                    • 18.4 Pascal-S解释执行程序
                                                                                                                                                                                                                                                                                                                                                                                                                      • 18.4.1 P代码指令系统
                                                                                                                                                                                                                                                                                                                                                                                                                        • 18.4.2 运行栈
                                                                                                                                                                                                                                                                                                                                                                                                                          • 18.4.3 运行时的display
                                                                                                                                                                                                                                                                                                                                                                                                                            • 18.4.4 运行出错处理和现场剖析打印
                                                                                                                                                                                                                                                                                                                                                                                                                            • 18.5 编译及运行的例子
                                                                                                                                                                                                                                                                                                                                                                                                                          • 参考文献
                                                                                                                                                                                                                                                                                                                                                                                                                          如无法打开或下载资源,请在电脑端(xuanshu.hep.com.cn)进行下载操作。
                                                                                                                                                                                                                                                                                                                                                                                                                          课程网址: null
                                                                                                                                                                                                                                                                                                                                                                                                                          1