![]()
内容推荐 本书是编译器设计领域的经典著作,主要从以下四部分详解了编译器的设计过程。 第一部分涵盖编译器前端设计和建立前端所用工具的设计和构建;第二部分探讨从源代码到编译器中间形式的映射,考察前端为优化器和后端所生成代码的种类;第三部分介绍代码优化,同时包含对分析和转换的进一步处理;第四部分专门讲解编译器后端使用的算法。 本书适合作为高等院校计算机专业本科生和研究生编译课程的教材和参考书,也可供相关技术人员参考。 作者简介 Keith D.Cooper库珀,莱斯大学计算机科学系计算工程专业Doerr特聘教授,曾任该系系主任。Cooper博士的研究课题涵盖过程间数据流分析、标量指令优化、寄存器分配以及指令调度等方面。 目录 第1章 编译概观 1.1 简介 1.2 编译器结构 1.3 转换概述 1.3.1 前端 1.3.2 优化器 1.3.3 后端 1.4 小结和展望 第2章 词法分析器 2.1 简介 2.2 识别单词 2.2.1 识别器的形式化 2.2.2 识别更复杂的单词 2.3 正则表达式 2.3.1 符号表示法的形式化 2.3.2 示例 2.3.3 RE的闭包性质 2.4 从正则表达式到词法分析器 2.4.1 非确定性有限自动机 2.4.2 从正则表达式到NFA:Thompson构造法 2.4.3 从NFA到DFA:子集构造法 2.4.4 从DFA到最小DFA:Hopcroft算法 2.4.5 将DFA用做识别器 2.5 实现词法分析器 2.5.1 表驱动词法分析器 2.5.2 直接编码的词法分析器 2.5.3 手工编码的词法分析器 2.5.4 处理关键字 2.6 高级主题 2.6.1 从DFA到正则表达式 2.6.2 DFA最小化的另一种方法Brzozowski算法 2.6.3 无闭包的正则表达式 2.7 小结和展望 第3章 语法分析器 3.1 简介 3.2 语法的表示 3.2.1 为什么不使用正则表达式 3.2.2 上下文无关语法 3.2.3 更复杂的例子 3.2.4 将语义编码到结构中 3.2.5 为输入符号串找到推导 3.3 自顶向下语法分析 3.3.1 为进行自顶向下语法分析而转换语法 3.3.2 自顶向下的递归下降语法分析器 3.3.3 表驱动的LL(1)语法分析器 3.4 自底向上语法分析 3.4.1 LR(1)语法分析算法 3.4.2 构建LR(1)表 3.4.3 表构造过程中的错误 3.5 实际问题 3.5.1 出错恢复 3.5.2 一元运算符 3.5.3 处理上下文相关的二义性 3.5.4 左递归与右递归 3.6 高级主题 3.6.1 优化语法 3.6.2 减小LR(1)表的规模 …… 第4章 上下文相关分析 第5章 中间表示 第6章 过程抽象 第7章 代码形式 第8章 优化简介 第9章 数据流分析 第10章 标量优化 第11章 指令选择 第12章 指令调度 第13章 寄存器分配 附录A ILOC 附录B 数据结构 参考文献 索引 |