Summer Session II, August 6 September 12, 2001
There is no required text for this course; however, you may still want to consult a book on compiler construction. Here are some suggestions.
| Author(s) | Title | Publisher | Year | Comment |
|---|---|---|---|---|
| Aho, Sethi, Ullman | Compilers: Principles, Techniques, and Tools | Addison-Wesley | 1986 |
This classic book covers the state-of-the-art in compiler construction 15 years ago. However, since the basics are pretty much timeless, it can still be a worthwhile investment. Examples are mostly in C. |
| Appel | Modern Compiler Implementation | Cambridge University Press | 1998 |
This is probably the classic of the future. Appel treats compiler construction from a very modern perspective, especially code generation and optimization. The book develops a complete compiler for a relatively complex language. Recommended! Available with examples in C, Java, or ML. |
| Wirth | Compiler Construction | Addison-Wesley | 1996 |
This little book is the most compact introduction to compiler construction currently available. It covers all the essentials for this course and also develops a complete compiler. Recommended! Examples are in Oberon. |
| Fraser, Hanson | A Retargetable C Compiler: Design and Implementation | Addison-Wesley | 1995 |
This is not a textbook on compiler construction. Instead, it presents the implementation of the popular lcc compiler. This is not a toy compiler but the real thing, fully documented in literate programming style. |
| Muchnick | Advanced Compiler Design and Implementation | Morgan Kaufmann | 1997 |
This advanced text focuses on code generation and optimization, but addresses other issues as well. It is only recommended after you have thoroughly absorbed a more elementary book. |
| Terry | Compilers and Compiler Generators: An Introduction with C++ | International Thomson Computer Press | 1997 |
This text is available as a free download online. However, we can not offer any comments yet. |
| Scott | Programming Language Pragmatics | Morgan Kaufmann | 2000 |
This is again not a compiler book in the usual sense. It is a text on programming languages that leans more heavily towards compiler construction than usual. If you want a single reference for languages and compilers, give it a look. |
| Grune, Jacobs | Parsing Techniques: A Practical Guide | | 1998 |
This text is available as a free download online. However, we can not offer any comments yet. |
| Hennesey, Patterson | Computer Architecture: A Quantitative Approach | Morgan Kaufmann | 1996 |
This is again not a compiler text, although it touches on many issues relavant for compilers and code generation in particular. This is a detailed introduction to computer architecture, covering way more detail than you will need in this course. |
| Patterson, Hennesey | Computer Organization and Design: The Hardware/Software Interface | Morgan Kaufmann | 1997 |
See above, same topic but different emphasis and sometimes considered easier to read since it is more "high-level". |
There are also plenty of other books on compilers out there, too many to list here in fact. You are on your own to find the right one for you. If you find a good book, tell us about it! And if you buy books online, be smart and use a site for comparison shopping such as BestBookBuys or BookFinder.
The following books do not address compilers in particular, but they can prove helpful for doing the project in this course.
| Author(s) | Title | Publisher | Year | Comment |
|---|---|---|---|---|
| Gamma, Helm, Johnson, Vlissides | Design Patterns | Addison-Wesley | 1995 |
This book is the classic on design patterns, and it discusses a number of patterns useful for implementing a compiler. Look at Visitor, Factory, Interpreter, etc. for ideas. |
| Hunt, Thomas | The Pragmatic Programmer | Addison-Wesley | 1999 |
Lots of practical (or pragmatic) advice on programming and software development in general, e.g. how to organize your code, how to debug, how to test, etc. Similar in intent to the text by Kernighan and Pike, but quite a different approach. |
| Kernighan, Pike | The Practice of Programming | Addison-Wesley | 1999 |
Lots of practical (or pragmatic) advice on programming and software development in general, e.g. how to organize your code, how to debug, how to test, etc. Similar in intent to the text by Hunt and Thomas, but quite a different approach. |
If you plan to become a serious software developer, some of the techniques described in these books can be very helpful indeed, even financially...
|
Copyright © 2001
Peter H. Fröhlich.
All rights reserved.
$Id: books.html,v 1.5 2002/01/08 18:50:02 phf Exp $ |
|