本书作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界的计算机 科学家,他们在计算机科学理论、数据库等很多领域都做出了杰出贡献。本书 是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书一 直被世界各地的和科研机构(如贝尔实验室、哥伦比亚大学、普 林斯顿大学和斯坦福大学等)广泛用作本科生和研究生编译原理与技术课程的 教材,本书对我国计算机教育界也具有重大影响。 书中深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制 导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在 后两章中讨论了实现编译器的一些编程问题和几个编译器实例,而且每章都 提供了大量的练习和参考文献。 本书可以作为计算机专业本科生和研究生编译原理与技术课程的 教材,也可以作为计算机技术人员必读的专业参考书之一。
本书深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在后两章中讨论了实现编译器的一些编程问题和几个编译器实例,每章都提供了大量的练习和参考文献。本书从介绍编译的原理性概念开始,然后通过构建一个简单的一遍编译器来逐一解释这些概念。 本书是编译原理课程的经典教材,作者曾多次使用本书的内容在贝尔实验室、哥伦比亚大学、普林斯顿大学和斯坦福大学向本科生和研究生讲授初等及高等编译课程
目录
- 出版者的话
- 专家指导委员会
- 译者序
- 前言
- 第1章编译简介 1
- 1.1编译器 1
- 1.2源程序分析 3
- 1.3编译器的各阶段 6
- 1.4编译器的伙伴 10
- 1.5编译器各阶段的分组 13
- 1.6编译器的构造工具 14
- 参考文献注释 15
- 第2章简单的一遍编译器 17
- 2.1概述 17
- 2.2语法定义 17
- 2.3语法制导翻译 22
- 2.4语法分析 26
- 2.5简单表达式的翻译器 32
- 2.6词法分析 37
- 2.7符号表 40
- 2.8抽象堆栈机 42
- 2.9技术的综合 46
- 练习 53
- 编程练习 54
- 参考文献注释 55
- 第3章词法分析 57
- 3.1词法分析器的作用 57
- 3.2输入缓冲 60
- 3.3记号的描述 62
- 3.4记号的识别 67
- 3.5词法分析器描述语言 72
- 3.6有穷自动机 76
- 3.7从正规表达式到NFA 81
- 3.8设计词法分析器的生成器 85
- 3.9基于DFA的模式匹配器的优化 89
- 练习 97
- 编程练习 103
- 参考文献注释 103
- 第4章语法分析 105
- 4.1语法分析器的作用 105
- 4.2上下文无关文法 109
- 4.3文法的编写 113
- 4.4自顶向下语法分析 120
- 4.5自底向上语法分析 128
- 4.6算符优先分析法 134
- 4.7LR语法分析器 142
- 4.8二义文法的应用 163
- 4.9语法分析器的生成器
- 练习 174
- 参考文献注释 182
- 第5章语法制导翻译 185
- 5.1语法制导定义 185
- 5.2语法树的构造 189
- 5.3自底向上计算S属性定义 194
- 5.4L属性定义 195
- 5.5自顶向下翻译 198
- 5.6自底向上计算继承属性 202
- 5.7递归计算 207
- 5.8编译时属性值的空间分配 209
- 5.9编译器构造时的空间分配 211
- 5.10语法制导定义的分析 215
- 练习 219
- 参考文献注释 221
- ……
- 第6章类型检查 223
- 第7章运行时环境 253
- 第8章中间代码生成 299
- 第9章代码生成 333
- 第11章编写一个编译器 469
- 第12章编译器实例 475
- 附录一个程序设计项目 483
- 参考文献 489
- 索引 511