This updated and expanded textbook comprehensively covers every stage of a contemporary compiler, encompassing lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection using tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It not only provides robust coverage of current methods in code generation and register allocation but also addresses functional and object-oriented languages, aspects often omitted in other texts. Additionally, advanced chapters have been incorporated, making it suitable for a two-semester or graduate course.
The book focuses on concise explanations of widely accepted and successful techniques, avoiding an exhaustive catalog of every potential variant. Real C header files are used to exemplify detailed descriptions of the interfaces between compiler modules. The first section, “Fundamentals of Compilation,” is well-suited for a single-semester introductory course in compiler design, while the second part, “Advanced Topics,” delves into object-oriented and functional language compilation, 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)