GetTextbooks.co.uk  
 Compare Prices & Save up to 90%
Search by ISBN, title, author, etc ...

Login | Sign up | My Wish List  


Modern Compiler Implementation in ML

by Andrew W. Appel

ISBN-10: 9780521582742
ISBN-10: 0-521-58274-1
ISBN-13: 9780521582742
ISBN-13: 978-0-521-58274-2
Hardcover
1997-12-13
Cambridge University Press


Find Lowest Price

Editorials


Product Description
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 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.

Book Description
This new, expanded textbook describes all phases of a modern compiler, including current techniques in code generation and register allocation, for imperative, functional and object-oriented languages. In a concise and practical way the author describes the fundamentals of compilation and then moves on to advanced topics such as SSA form, loop scheduling, and optimization for cache-memory hierarchies. A unique feature is a compiler implementation project in ML, including front-end and 'high-tech' back-end phases.

Reviews


Extremely valuable, but not for the faint of heart
I love this book. Having experimented with compiler construction for some time (though never seriously), and being a long-time ML user, Modern Compiler Implementation in ML was the perfect companion to my compiler-construction project. I largely ignored the "Tiger" language described in the book - I had my own ideas about what I wanted to create. Relying on the book to give you code for a whole compiler is asking far too much. The general concepts are explained, and then reinforced with sample code. I suspect the people who have complained bitterly about this book are actually just looking for a source code print out.

All in all, very worthwhile. Read a chapter, try to implement the concepts, and then either re-read the same chapter, or move on.

One of the better compiler texts
This book covers a remarkably broad territory of compiler issues, with a good balance of clarity and depth. It spends long enough on each topic to work through examples of functioning code, but doesn't dwell on any for so long that the reader loses interest. A decent set of variations on language design, runtime organization, and machine architecture are also discussed and implemented.

An important caveat is that readers ought to know some dialect of ML. If not, this book does not teach it; there are alternative renditions of the same text in C and Java, but I have not read them. Apparently many reviewers find those confusing. The java rendition, for example, has many angry reviewers. Possibly disgruntled students who had a hard time with their coursework, possibly people with valid complaints about the text.

All I can say is that I quite enjoyed it, and return to it regularly for its clear presentation, when working with related algorithms.

Good Information Masked by Bad Editting
This book has a lot of valuable information with regard to the construction of a compiler, that fact is overshadowed by the amazingly poor editting.

This is supposedly the "first edition reprint with corrections", but it seems like the vast majority of errors are yet to be corrected.


Good, but not an introduction to either compilers or ML
Appel explains the structure of a compiler in a very clear and precise fashion, including a lot of quite modern techniques. *However* it is only clear and precise if you have a rough high-level understanding of compilers and a good knowledge of ML beforehand. (If you understand one of the two, it is an excellent book for learning the other but you will need to do some thinking for yourself.)

If you're looking to learn about compilers from the very beginning, buy something else (I liked "Crafting A Compiler" as a starting point). If you're wanting to get a lot more precise about the way you build compilers, buy this book.


Not good as a first book on compilers
This book aims at teaching the reader how to write compilers and interpreters. Compared to other books (most notably the Dragon book - Aho, Sethi & Ullman: Compilers - Principles, Techniques and Tools) the structure and organization of the compiler he teaches are better and more in sync with modern compiler research. So although ML is not a language that is used much in practice it is well choosen for teaching compilers.

The first part of the book is intended for undergraduate Computer Science university student and the second part is for graduate students. I have only read the first part and browsed the second part. The first part is founded on the development of a compiler - the Tiger compiler - and that is the main flaw of the book. The Tiger compiler is fairly advanced and it is built up one phase at the time (see the chapter headings in the synopsis). A undergraduate reader who has never read anything about compiler design before will be very confused. The book is good in the way that it presents many good compiler design ideas and I learned some from it, but for me it was not the first book on compiler. I just think that the first part of the book has too steep a learning curve - even if you are proficient with ML, which is an absolute must. Recommended for serious readers who already know something about compiler construction before reading it. For other people I recommend the older but somewhat outdated book: Aho, Sethi & Ullman: Compilers - Principles, Techniques and Tools.



Home | Browse | Professors | Merchants | Webmasters | Contact Us

[ United States | Canada ]

Copyright © 2003-2008 GetTextbooks.co.uk