目录 1
第一章 绪言 1
1.1 编译程序的定义 1
1.2 编译程序的结构 1
1.3 简史 3
第二章 数据结构 5
2.1 引言 5
2.2 抽象数据结构 5
2.2.3 排队和栈 6
2.2.2 数组 6
2.2.1 串 6
2.2.4 表 7
2.2.5 树 7
2.2.6 方向图 8
2.3 内部存贮结构 8
2.3.1 向量 9
2.3.2 链表 10
2.3.3 丛 11
3.2 串 13
3.1 栈和排队 13
第三章 数据结构映象 13
3.3 树和方向图 14
3.4 数组 14
3.4.1 用内情向量存取数组 15
3.4.2 用Iliffe向量存取数组 16
第四章 表 19
4.1 直接取表 20
4.2 查表 20
4.3 查找长度 21
4.4 折半查找 22
4.5 混列表 23
4.5.1 开放混列表 24
4.5.2 溢出混列 29
4.5.3 使用链的溢出混列 29
4.5.4 使用内链的溢出混列 30
4.5.5 删除登记项 31
4.5.6 映象函数 32
第五章 语言描述 35
5.1 引言 35
5.2 表示法 35
5.3 Chomsky分类 37
5.4 分析 39
5.5 递归 40
第六章 词法分析 42
6.1 引言 42
6.2 行的重构和输入转换 43
6.3 词法转换 45
6.4 数的转换 47
6.5 FORTRAN的词法分析程序 52
7.1 引言 55
第七章 语法分析 55
7.2 优先文法 56
7.3 算子优先文法 60
7.4 算子优先文法的分析程序 61
7.5 Floyd产生式 65
7.6 自顶向下分析 68
7.6.1 带选择的自顶向下分析 71
7.7 自底向上分析 72
7.8 分析算法的比较 75
7.9 算子优先分析算法的实现 76
8.1 引言 79
第八章 算术表达式的代码生成 79
8.2 假想计算机 80
8.3 使用运算符表的一个基本算法 82
8.4 由树结构生成代码的算法 84
8.5 更复杂的算法 90
8.6 一目运算和转换函数 90
8.6.1 当栈组合时确定代码 92
8.6.2 树算法中的一目运算 95
8.7 简单公共子表达式的编码 99
8.8 赋值语句组的编码 103
8.8.1 假公共子表达式 104
8.8.2 语句的重新排列 105
8.9 全局优化 110
第九章 存储分配 111
9.1 引言 111
9.2 临时变量的存贮分配 112
9.3 Belady算法 118
9.4 变址寄存器的分配 122
第十章 编译程序的编译程序 128
10.1 引言 128
10.2 什么是编译程序的编译程序 129