Cambridge Catalog  
  • Your account
  • View basket
  • Help
Home > Catalog > Modern Compiler Implementation in Java
Modern Compiler Implementation in Java
Google Book Search

Search this book

Resources and solutions

This title has free online support material available.



  • 80 b/w illus. 35 tables 135 exercises
  • Page extent: 512 pages
  • Size: 246 x 156 mm
  • Weight: 1.27 kg

Library of Congress

  • Dewey number: 005.4/53
  • Dewey version: 21
  • LC Classification: QA76.73.J38 A65 2002
  • LC Subject headings:
    • Java (Computer program language)
    • Compilers (Computer programs)

Library of Congress Record

Add to basket


 (ISBN-13: 9780521820608 | ISBN-10: 052182060X)

Manufactured on demand: supplied direct from the printer

$99.99 (X)

This textbook describes all phases of a 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 thorough coverage of current techniques in code generation and register allocation, and the compilation of functional and object-oriented languages. The most accepted and successful techniques are described and illustrated with actual Java^TM® classes. The first part is suitable for a one-semester first course in compiler design. The second part; which includes the compilation of object-oriented and functional languages, garbage collection, loop optimization, SSA form, instruction scheduling, and optimization for cache-memory hierarchies; can be used for a second-semester or graduate course. This new edition includes more discussion of Java and object-oriented programming concepts such as visitor patterns plus a new Mini-Java programming project. A unique feature is the newly redesigned compiler project in Java for a subset of Java itself. The project includes both front-end and back-end phases.


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: Mini-Java reference manual.


"[s] comfortably and usefully between cookbooks and encyclopedias on compilation...suitable for self-study." Computing Reviews

"A well-written book, which strictly adheres to a no-nonsense style." Computing Reviews

printer iconPrinter friendly version AddThis