《编译原理》主要介绍设计和构造编译程序的基本原理和方法。内容包括形式语言理论和自动机理论、常用的词法分析方法、各种经典的语法分析方法、语法制导翻译方法、存储器的组织与管理方法、符号表的组织与造查表方法、代码优化和代码生成方法、并行编译程序及编译自动化技术等。
本书注重理论与实践、原理与方法的互通,基本概念阐述清晰,讲授深入浅出,循序渐进,系统性强。各章之后还附有难度不一的习题供复习、思考和探索之用。本书既可作为高等院校计算机专业的教材,也可供相关专业师生和科技工作者及软件研发人学习和参考。
目录
- 第1章 引论
- 1.1 翻译程序
- 1.1.1 程序设计语言
- 1.1.2 翻译程序
- 1.2 为什么需要编译程序
- 1.3 编译程序的工作过程
- 1.3.1 分析
- 1.3.2 综合
- 1.4 编译程序的结构
- 1.5 编译程序的组织方式
- 1.6 编译程序的其他有关技术
- 1.6.1 编译程序的自展技术
- 1.6.2 编译程序的移植技术
- 1.6.3 编译程序自动化
- 1.6.4 程序的可再入性
- 1.7 翻译程序编写系统
- 1.8 并行编译程序
- 1.9 小结
- 习题
- 第2章 形式语言概论
- 2.1 语言成分
- 2.2 产生式文法和语言
- 2.2.1 产生式文法
- 2.2.2 上下文无关文法
- 2.2.3 上下文无关文法定义的语言
- 2.3 文法的分类
- 2.3.1 文法分类
- 2.3.2 文法分类的意义
- 2.3.3 文法举例
- 2.4 语言和语法
- 2.4.1 句型、句子和语言
- 2.4.2 语法树
- 2.4.3 语法树的生成过程
- 2.5 文法和语言的一些特性
- 2.5.1 无用非终结符号
- 2.5.2 不可达文法符号
- 2.5.3 可空非终结符
- 2.5.4 最左、最右推导和规范推导
- 2.5.5 二义性
- 2.6 分析方法简介
- 2.6.1 自上而下分析方法
- 2.6.2 确定的自上而下分析方法
- 2.6.3 自下而上分析方法
- 2.6.4 文法在内存中的表示
- 2.7 小结
- 习题二
- 第3章 有穷自动机
- 3.1 概述
- 3.2 有穷自动机的形式定义
- 3.2.1 状态转换表
- 3.2.2 状态转换图
- 3.2.3 构形和移动
- 3.2.4 自动机的等价性
- 3.2.5 非确定有穷自动机
- 3.3 NDFSA到DFSA的转换
- 3.3.1 空移环路的寻找和消除
- 3.3.2 消除空移
- 3.3.3 利用状态转换表消除空移
- 3.3.4 确定化——子集法
- 3.3.5 确定化——造表法
- 3.3.6 消除不可达状态
- 3.3.7 确定的有穷自动机的化简
- 3.3.8 从化简后的DFSA到程序表示
- 3.3.9 小结
- ……
- 第4章 词法分析
- 第5章 自上而下语法分析
- 第6章 自下而上分析和优先分析方法
- 第7章 自下而上的LR(K)分析方法
- 第8章 语法制导翻译法
- 第9章 运行时的存储组织与管理
- 第10章 符号表的组织和查找
- 第11章 优化
- 第12章 代码生成
- 参考文献