-
- as low as
- marketplace
- $5.83
- You save 91%
This textbook describes all phases of a modern compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes good coverage of current techniques in code generation and register allocation, as well as functional and object-oriented languages, which is missing from most books. The most accepted and successful techniques are described in a concise way, rather than as an exhaustive catalog of every possible variant. Detailed descriptions of the interfaces between modules of a compiler are illustrated with actual Java classes. The first part of the book, Fundamentals of Compilation, is suitable for a one-semester first course in compiler design. The second part, Advanced Topics, which includes SSA form, loop scheduling, pipelining, and optimization for cache-memory hierarchies, can be used as the basis for a second-semester or graduate course. A unique feature of the book is a well designed compiler implementation project in Java, including front-end and high-tech back-end phases, so that students can build a complete working compiler in one semester. Accompanying support software is available.