现代编译原理

现代编译原理:C语言描述(中文版) (美)安佩尔 赵克佳/黄春/沈志宇著

C
浏览人数:331
读者: ...
《现代编译原理:C语言描述》全面讲述了现代编译器的结构、编译算法和实现方法,是Andrew w.Apple的“虎书”——Modern Compiler Implementation——“红、蓝、绿”三序列之一。这三本书的内容基本相同。但是使用不同的语言来实现书中给出的一个编译器。本书使用的是更适合广大读者的c语言,而另外两本书分别采用ML语言和Java语言。本书的另一个特点是增加了一些其他编译原理教科书没有涉及的内容。前端增加了面向对象的程序设计语言、函数式程序设计语言等现代语言的编译实现方法,后端增加了针对现代计算机体系结构特征的一些比较成熟的优化方法。这部分内容展现了现代商业编译器需解决的一些关键问题,开拓了学生的视野,为学生未来进行更深入的研究奠定了基础。 《现代编译原理:C语言描述》全面讲述了现代编译器的各个组成部分,包括词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数据流分析、寄存器分配以及运行时系统等。全书分成两部分,第一部分是编译的基础知识,适用于第一门编译原理课程(一个学期);第二部分是高级主题,包括面向对象语言和函数语言、垃圾收集、循环优化、ssA(静态单赋值)形式、循环调度、存储结构优化等,适合于后续课程或研究生教学。书中专门为学生提供了一个用C语言编写的实习项目,包括前端和后端设计,学生可以在一学期内创建一个功能完整的编译器。
第一部分 编译基本原理   
第1章 绪论   
1.1 模块与接口   
1.2 工具和软件   
1.3 树语言的数据结构   
程序设计:直线式程序解释器   
第2章 词法分析   
2.1 词法单词   
2.2 正则表达式   
2.3 有限自动机   
2.4 非确定有限自动机   
2.5 Lex:词法分析器的生成器   
程序设计:词法分析   
第3章 语法分析   
3.1 上下文无关文法   
3.2 预测分析   
3.3 LR分析   
3.4 使用分析器的生成器   
3.5 错误恢复   
程序设计:语法分析   
第4章 抽象语法   
4.1 语义动作   
4.2 抽象语法分析树   
程序设计:抽象语法   
第5章 语义分析   
5.1 符号表   
5.2 Tiger编译器的绑定   
5.3 表达式的类型检查   
5.4 声明的类型检查   
程序设计:类型检查   
第6章 活动记录   
6.1 栈帧   
6.2 Tiger编译器的栈帧   
程序设计:栈帧   
第7章 翻译成中间代码   
7.1 中间表示树   
7.2 翻译为树中间语言   
7.3 声明   
程序设计:翻译成树   
第8章 基本块和轨迹   
8.1 规范树   
8.2 处理条件分支   
第9章 指令选择   
9.1 指令选择算法   
9.2 CISC机器   
9.3 Tiger编译器的指令选择   
程序设计:指令选择   
第10章 活跃分析   
10.1 数据流方程的解   
10.2 Tiger编译器的活跃分析   
程序设计:构造流图   
程序设计:活跃分析模块   
第11章 寄存器分配   
11.1 通过简化进行着色   
11.2 合并   
11.3 预着色的结点   
11.4 图着色的实现   
11.5 针对树的寄存器分配   
程序设计:图着色   
第12章 整合为一体   
程序设计:过程入口/出口   
程序设计:创建一个可运行的编译器   
第二部分 高级主题   
第13章 垃圾收集   
13.1 标记-清扫式收集   
13.2 引用计数   
13.3 复制式收集   
13.4 分代收集   
13.5 增量式收集   
13.6 Baker算法   
13.7 编译器接口   
程序设计:描述字   
程序设计:垃圾收集   
第14章 面向对象的语言   
14.1 类   
14.2 数据域的单继承性   
14.3 多继承性   
14.4 测试类成员关系   
14.5 私有域和私有方法   
14.6 无类语言   
14.7 向对象程序的优化   
程序设计:OBJECT Tiger   
第15章 函数式程序设计语言   
15.1 一个简单的函数式语言   
15.2 闭包   
15.3 不变的变量   
15.4 内联扩展   
15.5 闭包变换   
15.6 高效的尾递归   
15.7 懒惰计算   
程序设计:编译函数式语言   
第16章 多态类型   
16.1 参数多态性   
16.2 类型推论   
16.3 多态变量的表示   
16.4 静态重载的解决方法   
第17章 数据流分析   
17.1 流分析使用的中间表示   
17.2 各种数据流分析   
17.3 使用数据流分析结果的几种转换   
17.4 加快数据流分析   
17.5 别名分析   
第18章 循环优化   
18.1 必经结点   
18.2 循环不变量计算   
18.3 归纳变量   
18.4 数组边界检查   
18.5 循环展开   
第19章 静态单赋值形式   
19.1 转化为SSA形式   
19.2 必经结点树的高效计算   
19.3 使用SSA的优化算法   
19.4 数组、指针和存储器   
19.5 控制依赖图   
19.6 从SSA形式转变回来   
19.7 函数式中间形式   
第20章 流水和调度   
20.1 没有资源约束时的循环调度   
20.2 有资源约束的循环流水   
20.3 分支预测   
第21章 存储层次   
21.1 cache的组织结构   
21.2 cache块对齐   
21.3 预取   
21.4 循环交换   
21.5 分块   
21.6 垃圾收集和存储层次   
附录 Tiger语言参考手册   
参考文献   
索引   
优质好资源
PDF

现代编译原理:C语言描述(中文版).pdf

2018-10-17上传 下载:30 影印版 带目录
已下载
注:所有资源均由网友分享,经由管理员审核,保证完整性、清晰度,请放心使用!
作者简介
评论