Our systems are now restored following recent technical disruption, and we’re working hard to catch up on publishing. We apologise for the inconvenience caused. Find out more

Recommended product

Popular links

Popular links


Modern Compiler Implementation in C

Modern Compiler Implementation in C

Modern Compiler Implementation in C

Andrew W. Appel, Princeton University, New Jersey
Maia Ginsburg
July 2004
Paperback
9780521607650
£64.99
GBP
Paperback
USD
eBook

    This new, expanded 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, that are missing from most books. In addition, more advanced chapters are now included so that it can be used as the basis for a two-semester or graduate course. 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 C header files. 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 the advanced chapters, covers the compilation of object-oriented and functional languages, garbage collection, loop optimizations, SSA form, loop scheduling, and optimization for cache-memory hierarchies.

    • Keeps up with the revolution in computer architecture since 1985, covering current techniques in instruction selection, code generation, register allocation
    • Excellent coverage of practical back-end code generation issues not available in most texts
    • Well designed implementation project, with chapter-by-chapter programming assignments, so the resulting 'student compiler' is simple but high-tech and modern
    • Uses the C programming language for exercises and examples
    • Four new chapters - Static Single-Assignment Form, Polymorphic Types, Pipelining and Scheduling, and the Memory Heirarchy
    • A new section on parsing with automatic syntax-error repair
    • Some sections of the Register Allocation and Canonical Trees chapters have been completely rewritten to improve the clarity of explanation
    • All chapters have more pencil-and-paper exercises and Further Reading sections

    Product details

    July 2004
    Paperback
    9780521607650
    556 pages
    243 × 179 × 31 mm
    0.96kg
    80 b/w illus. 34 tables 117 exercises
    Available

    Table of Contents

    • Part I. Fundamentals of Compilation:
    • 1. Introduction
    • 2. Lexical analysis
    • 3. Parsing
    • 4. Abstract syntax
    • 5. Semantic analysis
    • 6. Activation records
    • 7. Translation to intermediate code
    • 8. Basic blocks and traces
    • 9. Instruction selection
    • 10. Liveness analysis
    • 11. Register allocation
    • 12. Putting it all together
    • Part II. Advanced Topics:
    • 13. Garbage collection
    • 14. Object-oriented languages
    • 15. Functional programming languages
    • 16. Polymorphic types
    • 17. Dataflow analysis
    • 18. Loop optimizations
    • 19. Static single-assignment form
    • 20. Pipelining and scheduling
    • 21. The memory hierarchy
    • Appendix.