本书阐述了编译程序的各个方面:词法分析,句法分析,抽象语法,语义行为,中间件表示,通过树匹配实现的指令选择,数据流分析,配色图寄存器分配和运行系统。书中内容较好地涵盖了代码生成和寄存器分配的新技术,还包括功能型程序设计语言与面向对象程序设计语言编译。当前广为接受且成功运用的技术在书中被简要描述,而非罗列所有可能变量的清单。对编译程序模块接口的详细描述以真正Java类的形式说明。本书及时部分"编译基础知识"适用于为时一学期的编译程序初期课程。第二部分"高级论题"包括:面向对象与功能型程序设计语言编译,无用存储单元收集,循环优化,静态单任务形式,指令调度和缓存–内存优先级优化,这部分内容可作为编译程序第二学期或研究生课程讲授。此新版在原版基础上大幅度改写,更多地包含Java和面向对象程序设计概念。独特之处在于提供了以Java语言重新编写的Java本身子集的编译程序项目。此项目包括前端和后端设计阶段,使学生得以在一学期内构建一个完整的可运行编译程序。本书适用于高等院校计算机专业Java程序设计语言、编译程序类课程。
作者简介:
Adrew W.Appel is Professor of Computer Science at Princeton University.He has done research and published papers on compilers,functional programming languages,runtime systems and garbage collection,type systems,and computersecurity;he is also author of the book Compiling with Continuations.
Jens Palsberg is Associate Professor of Computer Science at Pureue University.His research are programming languages,compilers,software engineering,and information security.He has authored more than 50 technical papers in these areas and a book with Michael Schwartzbach,Object-oriented Type Systems.
咎捉萄в檬榈奶氐悖
Preface
Part 1 Fundamentals of Compilation
1 Introduction
2 Lexical Analysis
3 Parsing
4 Abstract Syntax
5 Semantic Analysis
6 Activation Records
7 Translation to Intermediate Code
8 Basic Blocks Traces
9 Instruction Selection
10 Liveness Analysis
11 Register Allocation
12 Putting It All Together
Part2 Advanced Topics
13 Garbage Collection
14 Object-Orienter Languages
15 Functional Programming Languages
16 Polymorphic Types
17 Dataflow Analysis
18 Loop Optimizations
19 Static Single-Assignment Form
20 Pipelining and Scheduling
21 The Memory Hierarchy
Appendix:MiniJava Language Reference Manual
Bibliography
Index