图书目录

第1章 编译系统概述1

习题5

第2章 词法分析6

2.1 词法分析器的设计考虑及手工构造6

2.1.1 单词类型及二元式编码6

2.1.2 源程序的输入及预处理8

2.1.3 基本字的识别和超前搜索10

2.1.4 状态转换图和词法分析器的

手工构造11

2.1.5 词法分析器手工构造实例15

2.2 正规式、自动机及词法分析器的

自动生成18

2.2.1 基本概念19

2.2.2 正规式与正规集20

2.2.3 确定有限自动机22

2.2.4 非确定有限自动机23

2.2.5 NFA的确定化24

2.2.6 正规式的NFA表示26

2.2.7 正规式与确定有限自动机的

等价性27

2.3 词法分析器的自动生成29

2.3.1 自动生成过程概述29

2.3.2 扫描器控制程序工作原理32

2.3.3 扫描器控制程序的实现33

习题38

习题答案39

第3章 程序设计语言的语法描述45

3.1 文法的引入45

3.1.1 语法树45

3.1.2 语法规则和句子推导46

3.1.3 递归规则和递归文法47

3.2 上下文无关文法48

3.2.1 文法和语言49

3.2.2 文法的二义性51

3. 3 文法举例53

习题54

习题答案56

第4章 自上而下的语法分析60

4.1 带回溯的自上而下分析法概述60

4.2 直接左递归的消除61

4.3 不带回溯的自上而下分析法的

基本原理63

4.4 提取左因子66

4.5 first集和follow集66

4.5.1 first集的定义及构造算法66

4.5.2 follow集的定义及构造

算法69

4.6 递归下降分析法71

4.7 预测分析法75

4.7.1 预测分析表的构造75

4.7.2 预测分析控制程序76

4.7.3 预测分析程序讨论81

4.7.4 应用举例83

习题86

习题答案86

第5章 自下而上的语法分析95

5.1 自下而上的语法分析概述95

5.2 LR分析法的基本原理98

5.3 LR(0)项目集规范族的构造102

5.4 有效项目104

5.5 LR(0)分析表的构造104

5.6 SLR(1)分析表的构造107

5.7 LR语法分析器的控制程序110

5.8 二义文法在LR分析法中的应用115

5.9 应用举例117

5.10 LR分析法在词法分析器自动

构造中的应用120

5.10.1 模型语言的词法描述

及SLR分析表120

5.10.2 使用SLR分析表识别单词

的基本原理122

5.10.3 算法描述和程序实现123

5.10.4 LR_LEX中的分析表

最小化128

习题131

习题答案133

第6章 语法制导翻译和中间代码生成139

6.1 语法制导翻译概述140

6.2 符号表和常数表143

6.3 中间代码144

6.3.1 三元式145

6.3.2 四元式145

6.4 说明语句(简单变量)的翻译147

6.5 整型算术表达式及赋值语句的

翻译148

6.6 混合型算术表达式及赋值语句的

翻译151

6.7 布尔表达式的翻译154

6.8 标号和无条件转移语句的翻译162

6.9 控制语句的翻译164

6.9.1 if-then语句的翻译165

6.9.2 if-then-else语句的翻译166

6.9.3 while-do语句的翻译168

6.9.4 复合语句的翻译170

6.10 小结172

6.11 自上而下分析制导翻译概述172

习题174

习题答案176

第7章 目标代码生成181

7.1 目标计算机的虚拟实现181

7.2 语法制导翻译在汇编程序自动

构造中的应用184

7.2.1 汇编语言文法和分析表

构造184

7.2.2 单词编码表和词法分析186

7.2.3 汇编语言语义和语法制导

翻译188

7.3 从四元式到汇编语言的翻译190

习题197

习题答案197

附录A 虚拟机汇编程序使用说明199

附录B 课程实习指导201

参考文献217