目录 1
第一章 预备知识 1
1.1 引言 1
1.2 机器语言 4
1.3 符号汇编语言 9
1.4 高级程序设计语言 10
1.5 框图或流程图 12
1.6 编译程序和解释程序 14
第二章 编译过程概述 17
2.1 源程序的输入及机器表示 17
2.2 编译程序的组成部分 21
2.3 编译程序的工作流程 23
2.4 状态矩阵法的编译过程 25
2.5 状态矩阵法的具体实现 33
第三章 词法分析 37
3.1 词法分析的任务 37
3.2 读字符程序 41
3.3 直接分析的方法 42
3.4 状态矩阵法 43
3.5 算术常数的识别和翻译 47
3.6 符号名和专用定义符的识别 52
第四章 中间语言 55
4.1 波兰表示 55
4.2 四元组和三元组表示 60
4.3 树表示 70
4.4 三元式表示 75
第五章 语法分析和加工 80
5.1 语法分析和加工的任务 80
5.2 递归子程序法 81
5.3 优先矩阵法 90
5.4 优先数法 98
5.5 状态矩阵法 102
5.6 产生式法 102
5.7 状态转移语言 113
5.8 各种方法评述 115
6.1 顺序查表法 118
第六章 查表技术 118
6.2 直接取表法 119
6.3 Hash表法 121
第七章 存储的组织与分配 135
7.1 引言 135
7.2 目标程序在内存的总体安排 136
7.3 数据的存储分配 140
7.4 编译时内存储的组织 147
第八章 表达式及赋值语句的处理 151
8.1 状态矩阵法 151
8.2 关于表达式计值次序的优化 158
8.3 公共子表达式的节省 160
8.4 常数子表达式的归约 169
8.5 充分利用累加器值的优化 171
8.6 逻辑表达式的优化 171
8.7 赋值语句的处理 173
第九章 说明语句及数据赋初值语句的处理 176
9.1 类型语句的处理 176
9.2 维数语句或数组说明符的处理 178
9.3 公用语句的处理 180
9.4 共名语句的处理 182
9.5 等价语句的处理 184
9.6 单元的分配 193
9.7 外部语句的处理 195
9.8 初值语句的处理 197
第十章 一些控制语句的处理 200
10.1 引言 200
10.2 目标结构 200
10.3 实现方法 205
第十一章 过程段及其调用的处理 210
11.1 FORTRAN源程序的块结构 210
11.2 段头语句的处理 212
11.3 调用语句与函数段调用的处理 214
11.4 语句函数定义句及其调用 220
11.5 内部函数及基本外部函数的调用 223
11.6 库过程及其调用 225
12.1 格式语句的处理 228
第十二章 格式语句及读/写语句的处理 228
12.2 读/写语句的处理 232
第十三章 循环的处理及优化 235
13.1 循环的处理及目标结构 235
13.2 隐循环的处理及目标结构 239
13.3 什么叫循环优化 240
13.4 地址计算公式、同类数组及同类数元 242
13.5 循环优化的目标结构 246
13.6 实现方法概述 253
13.7 变址器的合理分配 261
13.8 关于循环的其他优化 265
14.1 语法错误的处理 268
第十四章 语法错误的处理、源程序的修改及调试措施 268
14.2 源程序的修改措施 272
14.3 调试措施 275
第十五章 编制编译程序的工作过程 279
15.1 语言的选定 279
15.2 编译方案的论证和确定 279
15.3 框图的绘制 281
15.4 编译程序存储(包括变址器)的分配和组织 283
15.5 编制程序 284
15.6 程序调试 284
15.7 试算考验和资料整理 285
15.8 交付使用和维护改进 285
参考资料 286