Essentials of CompilationJeremy G. Siek

Essentials of Compilation

by Jeremy G. Siek · first published 2023

32mentions
17recommended by
25HN commenters
2016–2026first – last mentioned

68% recommend32% neutral

Why HN recommends it

Builds a compiler step by step, from a small Lisp-like language to assembly, adding features at each stage. Skips parsing to focus on the back end; Racket and Python editions suit self-study.

Summarised by Claude from recommending comments

Affiliate links. As an Amazon Associate I earn from qualifying purchases.

Mentions per year

50 2007: 0 mentions2008: 0 mentions2009: 0 mentions2010: 0 mentions2011: 0 mentions2012: 0 mentions2013: 0 mentions2014: 0 mentions2015: 0 mentions2016: 1 mention2017: 2 mentions2018: 1 mention2019: 1 mention2020: 1 mention2021: 3 mentions2022: 3 mentions2023: 5 mentions2024: 3 mentions2025: 5 mentions2026: 2 mentions200720172026

What Hacker News says

  • matt_d · Dec 11, 2020 · Recommends

    …alphabetical order--I think these are all great, so including highlights of what I've liked about them): - IU P423/P523: Compilers (Programming Language Implementation) - Jeremy Siek, with the course book "Essentials of Compilation: An Incremental Approach" (pretty interesting approach, with programming language features developed incrementally having a fully working compiler at each step, cf. http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf;…

    on “Advanced Compilers: Self-Guided Online Course” ↗
  • oxff · May 9, 2022 · Recommends

    For beginners getting into "compilers", I would recommend starting with: 1. https://www.plai.org 2. Essentials of Compilation (Siek)

    on “Parsing / Recursive Descent Parser” ↗
  • solmag · Aug 19, 2021 · Recommends

    I've gone through a few compiler courses over the summer and this is among the best resources I've found (UPenn, CMU & Siek's "Essentials of Compilation"). It has a unique approach among them, it is the first lecture series that assumes a modern approach, that is, it ties compiler frontend to developer experience and IDE. Highly recommended to anyone…

    on “Modern Compiler Front End Course – Aleksey Kladov” ↗
  • jobhdez · Mar 22, 2023 · Recommends

    …I thing compilers are very interesting. I have built my own compilers in common lisp and I enjoyed my time. I basically almost completed a university quarter compiler project based on Dr. Siek's book "Essentials of Compilation". I did almost eveything a student would do in a quarter system except for implementing tuples and register allocation. One of my plans is to build a more substantial compiler, study the second edition…

    on “How likely is it to get a compiler software job with only a high school degree?” ↗
  • zengid · Jul 13, 2024 · Recommends

    …I love all of the tidbits about PL history in the margins, and its a great guide through the world of language design. If you're looking for a follow up, I might have a recommendation. I recently got Essentials Of Compilation by Jeremy G. Siek, and I'm very excited to find some time to read it. There is a version implemented in python and racket (two separate books), so you can pick what you're more comfortable with. (I chose…

    on “Crafting Interpreters” ↗
  • declank · Aug 30, 2024 · Recommends

    Great to see Essentials Of Compilation by Jeremy Siek mentioned. Also has a Python version.

    on “My Software Bookshelf” ↗
  • Jtsummers · Apr 5, 2025 · Recommends

    Another text using this approach: https://mitpress.mit.edu/9780262047760/essentials-of-compila... - Jeremy Siek's Essentials of Compilation (there's also a Python version) Admittedly I didn't finish working through it (life got in the way), but I worked through a good chunk of it with a colleague from a non-CS background. He wanted to understand…

    on “Compilers: Incrementally and Extensibly (2024)” ↗
  • Jtsummers · Aug 10, 2025 · Recommends

    …inspired by it: https://nostarch.com/writing-c-compiler - Writing a C Compiler by Nora Sandler, language agnostic for the implementation. https://mitpress.mit.edu/9780262047760/essentials-of-compila... - Essentials of Compilation (using Racket) by Jeremy Siek https://mitpress.mit.edu/9780262048248/essentials-of-compila... - Essentials of Compilation (using Python) by Jeremy Siek Those last two both have open access versions.

    on “Compiling a Lisp: Lambda lifting” ↗
  • sn9 · Aug 13, 2025 · Recommends

    What sort of compiler class were you looking for? You can work through a book that uses a more modern approach like Siek's Essentials of Compilation which comes in Racket [0] and Python flavors. Teach Yourself CS also has some more classic recommendations [1]. You may also be interested in using a language from the ML family [2] to implement a compiler…

    on “Ask HN: How good is MIT at teaching graph algorithms?” ↗
  • oxff · May 14, 2022 · Recommends

    …can't think of another exercise that covers so many good issues to solve, and good practices for solving them. The two I like to recommend are: - PLAI: https://cs.brown.edu/courses/cs173/2012/book/ - Essentials of Compilation: https://wphomes.soic.indiana.edu/jsiek/ For general software design, this blog is quite golden: https://www.tedinski.com/archive/

    on “Ask HN: How did you learn good program design?” ↗
  • IronBacon · Sep 21, 2018 · Recommends

    There are already a lot of suggestions here, I've added to my always increasing reading list this one[1] because, being based on Scheme (Racket to be exact), I'm curious on how a Lisp dialect compiler works internally. [1] https://github.com/IUCompilerCourse/Essentials-of-Compilatio...

    on “How to create an OS from scratch – tutorial” ↗
  • jcookeak · Nov 5, 2021 · Recommends

    I took the IU compilers course as an undergrad and can easily say it was my favorite course. If anyone is interested, here is a link to the textbook which will cover this papers content in much finer detail: https://github.com/IUCompilerCourse/Essentials-of-Compilatio...

    on “An Incremental Approach to Compiler Construction (2006) [pdf]” ↗
  • gsg · Sep 2, 2017 · Recommends

    There's a decent textbook written in the incremental style argued for by the author: Essentials of Compilation. It features compilers for seven languages, written in Racket, each with successively more advanced features. https://jeapostrophe.github.io/courses/2017/spring/406/notes...

    on “My first fifteen compilers” ↗
  • abdul-bahajaj · Sep 11, 2022 · Recommends

    Essentials of Compilation book and lecture series by IU A big portion of most compiler books focus on parsing. This book instead focuses on implementing a lisp to assembly compiler. Lisp being easy to parse the parsing topic…

    on “Ask HN: Which books do you consider real gems in your field of work/study?” ↗
  • noelwelsh · Mar 13, 2023 · Recommends

    Various books do this. Essentials of Compilation is a recent one: https://github.com/IUCompilerCourse/Essentials-of-Compilatio... You can find a PDF and the associated course with a very minimal amount of following links. If you are thinking of making your own language, it's also good to learn something about programming language theory, if you don't already. Many languages make mistakes that h

    on “CS 6120: Advanced Compilers: The Self-Guided Online Course” ↗

Keyboard shortcuts

/
Focus search
j / k
Next / previous book
Enter
Open focused book
Esc
Close / go back
g h
Go to Home
g t
Go to Top all-time
g m
Go to Most recommended
g r
Go to Rising
g f
Go to For You
?
Show this help