The originally submitted URL now redirects to the address above. Updating the destination does not change the item’s HN history, Hall membership, or rank.
Submission timeline
2007–2026One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.
First comments on top threads
HN comment orderIf you're looking for a modern compilers class -- including the theory of why this stuff works -- I highly recommend Matt Might's [0]. All of the notes, slides, and code are online. I audited Might's "Compilers" this spring. He live-coded a parser that parsed with derivatives, returning all possible parse trees whenever there were ambiguities in the grammar. [1] (Try getting that from yacc, or basically any other tool in existence right now.) All of his coding was done…
Looks like it took a number of years for the article to be finished. From “back to the future”: I won't spend a lot of time making excuses; only point out that things happen, and priorities change. In the four years since installment fourteen, I've managed to get laid off, get divorced, have a nervous breakdown, begin a new career as a writer, begin another one as a consultant, move, work on two real-time systems, and raise fourteen baby birds…
Dated, but simple, and more importantly, concrete, using almost no abstractions (like lex and yacc), so there's no magic. Since the compiler described is for a subset of Pascal, and the compiler is itself written in Pascal, even the magic of the compiler itself is explained away. This series is a large part of how I got started in the compiler business; and today I help maintain probably the most used Pascal compiler, in Delphi. If anyone is interested in…
It seems that in many compiler resources (even the modern ones), there is still a lot of focus on the front-end—things like lexing, parsing, DFAs, regex matching, recursive descent. I would like to see greater focus on the back-end: optimisation strategies like dead code elimination, register allocation, parallelisation, vectorisation, detecting SIMD-able code, and even whole-program optimisation. Even on the front-end, it would be nice to see focus on the failure cases—printing nicely formatted error messages…
The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.
- Breakout years
- 4
- Total points
- 850
- Total comments
- 133
100+ points or 50+ comments
reference only — not used in Hall rules or ranking
reference only — not used in Hall rules or ranking
Every submission
| Date | Title as submitted | By | Points | Comments |
|---|---|---|---|---|
| 2007-10-04 | Let's build a compiler (dated, but very good) | benhoyt | 15 | 2 |
| 2010-09-25 | Let’s Build a Compiler (1995)First breakout | aycangulez | 196 | 17 |
| 2011-03-25 | Let's Build a Compiler | mbowcock | 6 | 1 |
| 2013-10-30 | Let’s Build a Compiler (1995)Best thread | _virtu | 247 | 56 |
| 2015-05-06 | Let's Build a Compiler | mariuz | 3 | 0 |
| 2016-01-13 | Let's build a compiler | alanfranzoni | 5 | 0 |
| 2016-05-11 | Lets build compilers | pvsukale1 | 6 | 1 |
| 2019-03-07 | Let's Build a Compiler, by Jack Crenshaw | lrsjng | 4 | 0 |
| 2020-02-17 | Let’s Build a Compiler (1995) | undreren | 240 | 41 |
| 2022-05-11 | Let's Build a Compiler, by Jack Crenshaw (1995) | dunefox | 2 | 0 |
| 2023-12-26 | Let's Build a Compiler (1988)Latest 20+ point return | ibobev | 124 | 15 |
| 2026-05-10 | Let's Build a Compiler | tosh | 2 | 0 |
