目录 1
第一章 编译程序概述 1
1.1 什么叫编译程序 1
1.2 编译程序的组成部分 3
1.3 编译程序的分遍 4
1.4 编译程序的开发 6
第二章 形式语言简介 9
2.1 基本概念 9
2.2 文法变换 28
2.3 文法的其它表示法 35
2.4 关系和Warshall算法 37
第三章 词法分析 49
3.1 扫描程序 49
3.2 自动机 53
3.3 自动机用于词法分析 64
3.4 词法分析例 68
4.1 自底向上和自顶向下的语法分析 73
第四章 语法分析 73
4.2 简单优先方法 75
4.3 递归子程序方法 86
4.4 LL(1)方法 91
4.5 LR(0)和SLR(1)方法 98
4.6 状态转换方法 113
4.7 产生式语言PL 127
第五章 标识符的处理 139
5.0 引言 139
5.1 标识符的内部表示和信息表 140
5.2 定义性和使用性标识符 149
5.3 标识符的局部化 154
5.4 单元分配 162
5.5 标识符的翻译算法 166
第六章 中间语言 182
6.0 引言 182
6.1 逆波兰式及其生成算法 183
6.2 三元式及其生成算法 189
6.3 四元式及其生成算法 195
6.4 语法制导生成中间语言 202
第七章 目标生成 212
7.0 引言 212
7.1 表达式逆波兰式的翻译 218
7.2 表达式三元式的翻译 221
7.3 表达式四元式的翻译 224
7.4 表达式的翻译 225
7.5 赋值语句的翻译 254
7.6 转向语句的翻译 258
7.7 条件语句的翻译 263
7.8 循环语句的翻译 267
7.9 过程语句的翻译 283
7.10 复合语句和分程序的翻译 306
7.11 过程说明的翻译 308
8.1 程序错误与校正 319
第八章 错误的诊察与校正 319
8.2 改正拼写错误 322
8.3 校正语义错误 323
8.4 校正语法错误 327
第九章 优化简介 339
9.0 引言 339
9.1 合并常数 339
9.2 消除多余运算 343
9.3 外提不变运算 346
9.4 削减运算强度 351
9.5 下标变量优化 353
第十章 存贮的组织与分配 366
10.1 静态分配 366
10.2 数组的动态分配 369
10.3 递归调用与动态分配 379
10.4 表区管理 400