April 15, 2026
Dragon flashbacks, DIY smackdown
Want to Write a Compiler? Just Read These Two Papers (2008)
Programmers swear “just two papers” — others relive the hardest class of their lives
TLDR: The piece says you can learn to build a code translator by following approachable guides and tiny-step methods, not thick textbooks. The comments split between “it’s doable” veterans, grad-school trauma survivors, and resource hunters debating beginner courses and must-read books—making it a roadmap with drama attached.
The internet is fighting over how “hard” it is to build the thing that turns code into something a computer understands. The article claims old-school books are too dense, then drops a cheat code: start simple with Jack Crenshaw’s friendly guide and the Nanopass idea (lots of tiny steps), and skip the scary tomes unless you really need them. Cue the comment chaos.
One user basically waved a flare gun, posting the actual discussion thread link so everyone could pile in: HN comments are here. From there, it’s a vibe clash. Old hands say, “Relax, you can totally do this,” pointing to a gentle 1970s book by Richard Bornat that skips the theory haze. On the other side, a grad-school survivor confesses they still “shutter” at memories of their compiler course — “most difficult yet rewarding,” a humblebrag with PTSD energy.
Meanwhile, newbies ask if the viral Nand2Tetris course is the right starter pack, while another commenter drops the mic with “And Nystrom’s book” — a wink toward the cult-favorite “Crafting Interpreters.” The meme of the day: Dragon Book flashbacks vs. do-it-yourself bravado. The crowd’s split, but the mood is clear: less theory fog, more build-it-now energy, with resource links flying like confetti.
Key Points
- •Traditional compiler textbooks are broad and theory-heavy, making it hard for beginners to build a working compiler quickly.
- •Jack Crenshaw’s “Let’s Build a Compiler!” (1988) offers a practical, single-pass compiler tutorial with minimal optimizations.
- •Crenshaw’s approach omits an internal representation (AST), limiting flexibility despite simplicity.
- •Higher-level languages like Python, Ruby, Erlang, Haskell, Lisp, and Scheme make AST creation and manipulation straightforward.
- •The Nanopass Framework promotes many small, simple compiler passes in Scheme, validating data at runtime; comprehensive texts can be consulted later if needed.