第1章 编译概述 1
程序的翻译 1
编译程序的组成 3
编译程序的构造 5
小结 6
第2章 形式语言的基本知识 8
字母表和符号串的基本概念 8
文法和语言的形式定义 11
语法树与文法二义性 16
文法和语言的分类 18
小结 19
第3章 词法分析 21
词法分析的任务 21
词法分析程序的输出形式 23
词法分析程序的设计与实现 25
正规式与有穷自动机 29
词法分析程序的自动生成工具LEX 41
实例语言的词法分析程序 42
小结 45
第4章 语法分析 49
语法分析的任务 49
自顶向下分析法 49
自底向上分析法 62
LR分析法 75
语法分析程序的自动生成工具YACC 98
实例语言编译程序的语法分析 101
小结 103
第5章 语义分析与中间代码的生成 107
语义分析的任务 107
语法制导翻译 108
中间代码 109
说明语句的翻译 111
赋值语句的翻译 112
布尔表达式的翻译 115
控制流语句的翻译 118
过程调用的翻译 121
实例编译程序的语义分析 122
小结 124
第6章 符号表管理 128
符号表的作用 128
符号表的主要内容和作用 129
符号表的组织 133
符号表的管理 139
小结 143
第7章 运行时的存储组织与分配 145
存储组织概述 145
静态存储分配 148
栈式动态存储分配 148
堆式动态存储分配 152
小结 153
第8章 代码优化 155
局部优化 156
循环优化 163
小结 167
第9章 目标代码生成 170
目标代码的形式 170
假想的计算机模型 171
一个简单的代码生成程序 172
小结 177
附录A C语言实现的实例语言编译程序 179
附录B YACC语言实现的实例语言编译程序 233
参考文献 250