"This book takes on the challenges of contemporary languages and architectures and prepares the reader for the new compiling problems that will inevitably arise in the future....Compiler design is, in its essence, an engineering activity. The methods that are used, must be ones that provide good solutions to the translation situations that arise in practice, namely, real programs written in real languages executing on real machines. Most of the time, the compiler writer must take the languages and the machines as they come. Rarely is it possible to influence or improve the design of either. It is the engineering choices of what analyses and transformations to perform and when to perform them that determine the speed and quality of an optimizing compiler. Both in the treatment of the optimization material throughout the book and in the case studies..., these design choices are paramount."
From the Foreword by Susan L.Graham
The Definitive Book on Advanced Compiler Design.
This comprehensive, up-to-date work covers advanced issues in the design and implementation of compilers for modern processors. Written for professionals and graduate students, it guides readers in designing and implementing highly optimizing compilers for real-world languages. It begins with advanced issues in the fundamental areas of compiler design, followed by in-depth coverage of a wide range of important code optimizations. It guides the reader in determining the relative importance of the optimizations and the most effective ways to implement them.
- Lays the foundation for understanding the major issues in advanced compiler design.
- Treats optimization in depth.
- Uses four case studies of commercial compiling suites, including Sun Microsystems's for Sparc, IBM's for Power And PowerPC, Dec's for Alpha, And Intel's for Pentium and related processors, to illustrate various approaches to compiler structure, intermediate-code design, and optimization.
- Presents numerous clearly defined algorithms for code generation, optimization, and other topics.
- Introduces Informal Compiler Algorithm Notation (ICAN), a language devised by the author to communicate algorithms to people clearly and concisely.