Jump to ratings and reviews
Rate this book

Modern Compiler Implementation in Java

Rate this book
Last year you may have seen the Modern Compiler Implementation in C: Basic Techniques (1997) which was the preliminary edition of our new 1998 textbook, Modern Compiler Implementation in C. The new, expanded version of this 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 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. A unique feature of the book is a well designed compiler implementation project in Java, including front-end and 'high-tech' back-end phases, so that students can build a complete working compiler in one semester. Accompanying support software is available.

558 pages, Hardcover

First published January 13, 1997

15 people are currently reading
138 people want to read

About the author

Andrew W. Appel

16 books6 followers
Andrew W. Appel, Ph.D. (Computer Science, Carnegie Mellon University, 1985; A.B., Princeton University, 1981) is the Eugene Higgins Professor of Computer Science at Princeton University, where he has been on the faculty since 1986. He served as department chair from 2009 to 2015. His research is in software verification, computer security, programming languages and compilers, and technology policy.

He has been editor-in-chief of ACM Transactions on Programming Languages and Systems and is a fellow of the ACM (Association for Computing Machinery). He has worked on fast N-body algorithms (1980s), Standard ML of New Jersey (1990s), Foundational Proof-Carrying Code (2000s), and the Verified Software Toolchain (2010s). He is the author of several scientific papers on voting machines and election technology, served as an expert witness on two voting-related court cases in New Jersey, and has taught a course at Princeton on election machinery.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
16 (19%)
4 stars
30 (36%)
3 stars
24 (28%)
2 stars
9 (10%)
1 star
4 (4%)
Displaying 1 - 4 of 4 reviews
Profile Image for Nick Black.
Author 2 books879 followers
March 23, 2008
As no compiler written in Java would be worth using, I'm rather mystified as to the purpose of this book. Perhaps Appel let a retarded nephew of Bill Joy into his research group; I don't know, and I don't care to know.

Besides the ridiculous concept, the garish color is almost as obnoxious as FifteenJavaProgrammersUpOnYourNuts all UsingMixedCase with StupidlyLongIdentifiers and AskingIfWeCanEatLunchSomewhereThatSupportsEclipse hatehatehate!
Profile Image for Mircea Lungu.
45 reviews6 followers
June 23, 2013
We are using this as one of the main textbooks for the Compiler Construction at the University of Bern.
Profile Image for Zhi Han.
74 reviews13 followers
Read
July 7, 2014
Reading the tiger book as I am reading some papers on compilers.
Displaying 1 - 4 of 4 reviews

Can't find what you're looking for?

Get help and learn more about the design.