第一篇 概论 1
第1章 编译程序概述 1
1.1 编译程序及其构造 1
1.2 编译程序构造实践之必要性 5
1.3 编译程序实现要点 6
1.4 本书阅读指南 8
第2章 实践指南 15
2.1 程序(软件)的一般研制过程 15
2.1.1 中大型软件的开发 15
2.1.2 一般程序的研制 16
2.2 界面的设计与实现 21
2.2.1 界面设计的必要性 21
2.2.2 界面的风格 22
2.2.3 界面的设计 25
2.2.4 界面的实现 27
2.3 上机实习报告及其设计 54
2.3.1 书写上机实习报告之必要性 54
2.3.2 上机实习报告的设计 54
2.3.3 上机实习报告之例 62
第二篇 实践篇 71
第1章 文法及相关概念 71
1.1 基本概念 71
1.1.1 文法与句子 71
1.1.2 文法等价变换 72
1.2 主要数据结构 73
1.1.3 句型分析 73
1.3.1 实习题1.1 76
1.3 实习题 76
1.3.2 实习题1.2 81
1.3.3 实习题1.3 87
1.3.4 实习题1.4 91
1.3.5 实习题1.5 98
1.3.6 实习题1.6 104
1.3.7 实习题1.7 111
第2章 词法分析 112
2.1 基本概念 112
2.2 主要数据结构 114
2.3.1 实习题2.1 118
2.3 实习题 118
2.3.2 实习题2.2 122
2.3.3 实习题2.3 126
2.3.4 实习题2.4 127
2.3.5 实习题2.5 132
2.3.6 实习题2.6 135
2.3.7 实习题2.7 140
第3章 语法分析——自顶向下分析技术 142
3.1 基本概念 142
3.1.1 自顶向下分析技术 142
3.1.3 预测分析技术 143
3.1.2 递归下降分析技术 143
3.2 主要数据结构 144
3.3 实习题 145
3.3.1 实习题3.1 145
3.3.2 实习题3.2 148
3.3.3 实习题3.3 152
3.3.4 实习题3.4 156
3.3.5 实习题3.5 158
3.3.6 实习题3.6 165
4.1.1 自底向上分析技术 166
4.1.2 简单优先分析技术 166
4.1 基本概念 166
第4章 语法分析——自底向上分析技术 166
4.1.3 算符优先分析技术 167
4.1.4 LR(k)分析技术 168
4.2 主要数据结构 171
4.3 实习题 173
4.3.1 实习题4.1 173
4.3.2 实习题4.2 176
4.3.3 实习题4.3 179
4.3.4 实习题4.4 184
4.3.5 实习题4.5 189
4.3.6 实习题4.6 192
4.3.7 实习题4.7 197
4.3.8 实习题4.8 202
4.3.9 实习题4.9 208
第5章 语义分析和目标代码生成 209
5.1 基本概念 209
5.2 主要数据结构 212
5.3 实习题 215
5.3.1 实习题5.1 215
5.3.2 实习题5.2 224
5.3.3 实习题5.3 230
5.3.4 实习题5.4 237
5.3.5 实习题5.5 251
5.3.6 实习题5.6 264
5.3.7 实习题5.7 274
5.3.8 实习题5.8 283
5.3.9 实习题5.9 294
5.3.10 实习题5.10 299
第6章 代码优化 307
6.1 基本概念 307
6.2 主要数据结构 308
6.3 实习题 309
6.3.1 实习题6.1 309
6.3.2 实习题6.2 313
6.3.3 实习题6.3 318
参考文献 322