第一章 绪论
1.1 概述的历史
1.2 编译器可以做什么
1.3 编译器结构
1.4 程序设计语言的语法和语义
1.5 编译器设计与程序设计语言设计
1.6 编译器分类
1.7 影响编译器设计的因素
练习
第二章 一个简单编译器
2.1 Micro编译器结构
2.2 Micro词法分析器
2.3 Micro语法
2.4 递归下降语法分析
2.5 翻译 Micro
2.5.1 目标语言
2.5.2 临时变量
2.5.3 动作符号
2.5.4 语义信息
2.5.5 Micro动作符号
练习
第三章 词法分析——理论和实践
3.1 概述
3.2 正则表达式
3.3 有限自动机和词法分析器
3.4 使用词法分析器生成器
3.4.1 ScanGen
3.4.2 Lex
3.5 实现时考虑的问题
3.5.1 保留字
3.5.2 编译器指示与源程序行列表
3.5.3 符号表中的标识符条目
3.5.4 词法分析器的终止
3.5.5 多字符的超前搜索
3.5.6 词法错误恢复
3.6 将正则表达式转换为有限自动机
3.6.1 构造确定的有限自动机
3.6.2 优化有限自动机
练习
第四章 文法和语法分析
4.1 上下文无关文法:概念与记号
4.2 上下文无关文法中的错误
4.3 转换扩展BNF文法
4.4 语法分析器与识别器
4.5 文法分析算法
练习
第五章 LL(1)文法及分析器
第六章 LR分析
第七章 语义处理
第八章 符号表
第九章 运行时存储组织
第十章 处理声明
第十一章 处理表达式和数据结构引用
第十二章 翻译控制结构
第十三章 翻译过程和函数
第十四章 属性文法和多遍翻译
第十五章 代码生成和局部代码优化
第十六章 全局优化
第十七章 现实世界中的语法分析
附录
参考文献
索引
展开
·强调使用可以生成语法分析器和词法分析器的编译器工具。
·彻底讨论LR语法分析和归约技术。
·介绍了FLex和ScanGen。
·在每章末尾包含可选的高级主题。