The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.


Want to study compiler techniques, can anybody recommend some good books?
qclick Send private email
Thursday, November 09, 2006
So-called "Dragon" books have had a recent update.,_Techniques_and_Tools
Thursday, November 09, 2006
I think you first need to decide if you want a book on the academic theory of compiler design or a hands-on title that takes you through writing an interpreter (and eventually a compiler) using one of the many possible methods.

Of course the Dragon book (Aho) is the canonical answer.  I have read it a few times and each time take away something new (which might be a round-about way of saying that it is not a great introductory book outside of a classroom setting).

I've heard from several people that "Engineering a Compiler" (ISBN: 155860698X) is more readable than Aho but still dives deeper into the academic theory (i.e. it's not a hands-on "let's write a compiler" book).  I've not personally read this book.

When I first become interested in compilers I read "Writing Compilers and Interpreters" (ISBN: 0471113530).  It takes a hands-on approach to writing an interpreter and compiler (using C++ to write a Pascal-ish language).  It does not get deep into the theory of compiler design, and it prescribes an approach that does not rely on tools such as lex/yacc.  It does not replace the content in the Dragon Book but serves as a less academic and more hands-on approach to compiler creation.

If you know C++ and want to get going fast this might be a practical way to start.  There are certainly other good hands-on books but I haven't read them.

If you are interested in how compilers work you may also want to read about linkers and loaders.  Levine's book "Linkers and Loaders" (ISBN: 1558604960) does a good job of introducing the topic with good information on current architectures.  I found it a very fun book to read and I learned a lot from it.
Robert Horvick Send private email
Thursday, November 09, 2006
I just bought the Dragon book, it is pretty good, quite long and detailed, NOT a quick overview by any means. You can get it pretty cheap used off Amazon. I also own 'Programming Language Pragmatics' which is probably best read AFTER the dragon book as it seems to assume a higher knowledge level.
Greg Send private email
Thursday, November 09, 2006
Niklaus Wirth's book "Compiler Construction" is available online at:

It's not nearly as exhaustive (and exhausting!) as the Dragon book, but I found it easier to read.
Mark Bessey Send private email
Thursday, November 09, 2006
I don't understand how writing compilers can be non-technical, but the non-technical guide to writing compilers is here:
Friday, November 10, 2006
"Programming Language Pragmatics"

An excellent book.  It doesn't get too deep into anything but it covers everything.  It is more for designing your own language than writing a compiler for an existing one.  I set out to design and implement my language and this was the only book that I need.
Tom C
Friday, November 10, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz