本书系统地介绍了编译程序的设计原理及实现技术。在内容的组织上,本书强调知识的实用性,将编译的基本理论与具体的实现技术有机地结合起来,既注重了理论的完整性,化繁为简,又将理论融于具体的实例中,化难为易,以达到准确、清楚地阐述相关概念和原理的目的。除各章节对理论阐述的条理性外,书中给出的例子也具有实用性与连贯性,使读者对编译的各个阶段能有一个全面、直观的认识。本书采用的算法全部由c语言描述,各章均附有习题。
本书可作为计算机专业的本科教材,也可作为计算机软件工程人员的参考资料。
目录
- 前言
- 第1章 绪论
- 1.1 程序设计语言和编译程序
- 1.2 编译程序的历史及发展
- 1.3 编译过程和编译程序结构
- 1.4 编译程序的开发
- 1.5 构造编译程序所应具备的知识内容
- 习题一
- 第2章 词法分析
- 2.1 词法分析器的设计方法
- 2.1.1 单词符号的分类与输出形式
- 2.1.2 状态转换图
- 2.2 一个简单的词法分析器示例
- 2.2.1 c语言子集的单词符号表示
- 2.2.2 c语言子集对应的状态转换图
- 2.2.3 状态转换图的实现
- 2.3 正规表达式与有限自动机简介
- 2.3.1 正规表达式与正规集
- 2.3.2 有限自动机
- 2.4 正规表达式到有限自动机的构造
- 2.4.1 由正规表达式构造等价的非确定有限自动机(nfa)
- 2.4.2 nfa的确定化
- 2.4.3 确定有限自动机(dfa)的化简
- 2.4.4 正规表达式到有限自动机构造示例
- 2.5 词法分析器的自动生成
- 习题二
- 第3章 语法分析
- 3.1 文法和语言
- 3.1.1 文法和语言的基本概念
- 3.1.2 形式语言分类
- 3.1.3 正规表达式与上下文无关文法
- 3.2 推导与语法树
- 3.2.1 推导与短语
- 3.2.2 语法树与二义性
- 3.3 自顶向下的语法分析
- 3.3.1 递归下降分析法
- 3.3.2 ll(1)分析法
- 3.4 自底向上的语法分析
- 3.4.1 自底向上分析原理
- 3.4.2 算符优先分析法
- 3.5 规范归约的自底向上语法分析方法
- 3.5.1 lr分析器的工作原理
- 3.5.2 lr(0)分析器
- 3.5.3 slr(1)分析器
- 3.5.4 lr(1)分析器
- 3.5.5 lalr分析器
- 3.5.6 二义文法的应用
- 3.5.7 lr分析器应用与拓展
- 习题三
- 第4章 语义分析和中间代码生成
- 4.1 概述
- 4.1.1 语义分析的概念
- 4.1.2 语法制导翻译方法
- 4.2 属性文法
- 4.2.1 文法的属性
- 4.2.2 属性文法
- 4.3 几种常见的中间语言
- 4.3.1 抽象语法树
- 4.3.2 逆波兰表示法
- 4.3.3 三地址代码
- 4.4 表达式及赋值语句的翻译
- 4.4.1 简单算术表达式和赋值语句的翻译
- 4.4.2 布尔表达式的翻译
- ……
- 第5章 代码优化
- 第6章 目标程序运行时存储空间的组织
- 第7章 目标代码生成
- 第8章 符号表与错误处理
- 第9章 并行编译技术简介
- 参考文献