This expanded and updated textbook comprehensively covers all phases of a modern compiler, including lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It provides thorough coverage of current techniques in code generation and register allocation, encompassing functional and object-oriented languages, which are often overlooked in most books. Additionally, advanced chapters are now included, making it suitable as the basis for a two-semester or graduate course.
The book focuses on presenting concise descriptions of widely accepted and successful techniques, avoiding an exhaustive catalog of every possible variant. It also includes detailed illustrations of interfaces between compiler modules using actual C header files. The first part, Fundamentals of Compilation, is appropriate for a one-semester introductory course in compiler design, while the second part, Advanced Topics, delves into the compilation of object-oriented and functional languages, garbage collection, loop optimizations, SSA form, loop scheduling, and optimization for cache-memory hierarchies.
Download
See also
- Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code by Bill Blunden (2003)
- Hormones and the Endocrine System: Textbook of Endocrinology by Bernhard Kleine (2016)
- Genetics: A Conceptual Approach 6e by Benjamin A. Pierce (2017)
- A Functional Approach to Java by Ben Weidig (2022)
- Calculus of variations and optimal control by Amol Sasan (2005)