Ask HN: What resources do you recommend for compiler development?

4 points by JLCarveth ↗ HN
I am about halfway through "Compilers - Principles, Techniques, and Tools" by Aho et al. It's not a bad book perse, but it's expensive (~$170 CAD on Amazon), and there are no solutions to the exercises in the book.

Are there any better / more modern books that cover this topic?

5 comments

[ 3.2 ms ] story [ 22.8 ms ] thread
Book of Dragon. Not modern book but it is possible to buy used copy for very cheap price.
That is the book I referenced in the OP
It is the one you want, it's used in most uni courses on compilers
Older editions have solutions to the exercises in book available on line (via search engine such as google)

### Some of the following assume an advanced backround:

Structure and Interpretation of Computer Programs , Abelson & Sussman &

Engineering a compiler, K.D. Cooper & L. Torczon

Modern Compiler Design (Worldwide Series in Computer Science),

Build Your Own Programming Language: A programmer's guide to designing compilers, interpreters, and DSLs for solving modern computing problems, C Jeffery

### Alternate suggestions:

Aho et al. book covers quite a broad variety of topics/discussions. There are resources that cover more current approaches / more indepth for a given topic/specific subject matter than would be possible in Aho et.

Depending on requirements/needs, on-line resources/courses/topics can provide access to more modern/quicker feedback:

search compiler on https://www.geeksforgeeks.org/

software perspectiv, https://program-transformation.org/

research intensive, look at specific book/documentation on how a language is/was implimented, aka cpython, java, compiling lisp, smalltalk-80, forth

General resource sites (per looking for something less expensive): https://github.com/aalhour/awesome-compilers / https://bernsteinbear.com/pl-resources/

bernsteinbear.com author here -- glad you found it useful. Also, Engineering a Compiler's 3rd edition is coming out in September so you may want to wait a little bit!