Stream: beginners

Topic: Books


view this post on Zulip Pedro Mateus (Apr 17 2026 at 12:58):

Hello everyone,

What are some good books on compilers that you would recommend? 

Which book made it all click for you?

view this post on Zulip Anton (Apr 17 2026 at 13:03):

This one is talked about a lot but I have not read it personally: https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools

I had this one for my compiler course https://www.cs.princeton.edu/~appel/modern/ I don't recall exactly how I felt about the quality of the book but I think it was decent.

This one is also very well known https://craftinginterpreters.com
I think it would be my top recommendation.

view this post on Zulip Hannes (Apr 17 2026 at 16:31):

An alternative to the tiger book (the second of Anton's links) is Compiling with Continuations, also by Andrew Appel which I've also heard good things about.

https://www.cambridge.org/core/books/compiling-with-continuations/7CA9C36DCE78AD82218E745F43A4E740

view this post on Zulip Norbert Hajagos (Apr 19 2026 at 08:20):

I've read the first half of craftinginterpreters and I've liked it. Was a good intro to the concepts and made me understand how is parsing possible.
I feel quiet unsure about the approach that was taken in the first half of the book, using generated java code to build Expression classes that implement the visitor patter for the evaluation of code. That led to code that was hard to grok and debug.
It really felt like he was trying to shoehorn good oop design that fit Java into the interpreter codebased, which - I personally think - was a mistake.
The 2nd part was more promising, where he built the same interpreter with performance in mind, using C, relying on the knowledge built up in the first half. I didn't finish that part, so can't speak to that. His writing style is very enjoyable he's good at explaining.

From what I've heard from different sources like compiler authors, the Dragon Book is way too theory based for a first book. If you're interested in the theory, that's your source, but I'd still recommend a more practical one first.

I've heard good things about https://thorstenball.com/books/
He has 2 book, one for an interpreter and one for a compiler. I've only read Thorsten's blog, not his books but I'd actually start with his interpreterbook if I was in the positon of wanting to read my first book on this topic. It's a full walkthrough of the implementation in Go. The book is 10years old and go is still the same language, so you won't feel the time on it.

view this post on Zulip Ray Myers (Apr 23 2026 at 23:44):

A new one that helped me was: "Essentials of Compilation: An Incremental Approach in Racket" by Jeremy Siek, also available in Python. It uses the Nanopass style and starts by getting a compiler that works end-to-end very quickly, and then adding more features to it.

https://iucompilercourse.github.io/tutorial-web-page/

view this post on Zulip Anton (Apr 24 2026 at 09:38):

Interesting, nanopass sounds smart for teaching

view this post on Zulip Alec Gargett (Apr 30 2026 at 08:39):

Not sure how much this overlaps with "compilers" but "Types and programming languages" by Benjamin C. Pierce was highly recommended by Gleam's Louis Pilfold.


Last updated: May 01 2026 at 12:45 UTC