Modern Compiler Implementation in ML by Andrew W. Appel (2011)

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.

cover

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

Ebook


See also