
Modern Compiler Implementation in ML
Basic Techniques
Andrew W. Appel(Author)
Cambridge University Press
Published on 13. January 1997
Book
Paperback/Softback
400 pages
978-0-521-58775-4 (ISBN)
Article exhausted; check for reprint
Description
This textbook explains all phases of a modern compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-colouring register allocation with coalescing, and runtime systems. It covers current techniques in code generation and register allocation, as well as functional and object-oriented languages. The author illustrates the most accepted and successful techniques in a concise way, rather than as an exhaustive catalogue of every possible variant. Detailed descriptions of the interfaces between the modules of a compiler are illustrated with actual ML signatures. A unique feature of the book is a well-designed compiler implementation project in ML, including front-end and 'high-tech' back-end phases, so that students can build a complete working compiler in one semester. The textbook is meant for use in a one-semester first course for undergraduates in compiler design. Accompanying software is available.
More details
Language
English
Place of publication
Cambridge
United Kingdom
Target group
College/higher education
Product notice
Paperback (trade)
Illustrations
Worked examples or Exercises; 34 Tables, unspecified; 45 Line drawings, unspecified
Dimensions
Height: 234 mm
Width: 187 mm
Thickness: 22 mm
Weight
700 gr
ISBN-13
978-0-521-58775-4 (9780521587754)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
New editions

Andrew W. Appel
Modern Compiler Implementation in ML
Book
07/2004
Cambridge University Press
€104.50
Shipment within 15-20 days
Person
Content
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. Dataflow analysis; 17. Loop optimizations; Appendix: Tiger language reference manual.