On Hacker News
CS 6120: Advanced Compilers: The Self-Guided Online Course (2020)
Read the full article on cs.cornell.edu ↗366
points
51
comments
2
notable voices
The 5-second version
- Trace compilation is considered largely impractical as an organizing principle for production compilers despite being conceptually interesting.
- Type feedback, speculation, deoptimization, fast compilation, and tiering are more industrially relevant concepts than tracing.
- JAX demonstrates tracing still has value in specialized domains like machine learning, distinct from traditional JIT compilation.
- LuaJIT remains a notable system but the broader consensus is that trace-based approaches have been repeatedly abandoned in general-purpose settings.
- Effective compiler education should cover tracing briefly for perspective while emphasizing what actually works in real systems.
Top voices
Verbatim comments from the thread's most notable / highest-karma participants.
Well, course numbers are regular enough that you can look up what the "intro compilers" course is: https://www.cs.cornell.edu/courses/cs4120/2026sp/?schedule The short answer is that compilers is basically broken up into two courses, with the first course largely being the minimum necessary to build a compiler (lexing, parsing, codegen, register allocation), and the second course being how to build an optimizing compiler.Read on HN ↗
I'm a fan of the structure used in Essentials of Compilation [1][2] and Writing a C Compiler [3]. If you want to start with interpreters, I like Essentials of Programming Languages [4]. I have to admit, as popular as Crafting Interpreters is on this site and others, I'm not a fan. Others seem to love it so it's worth a shot, and freely available. EOC and EOPL are a bit on the academic side, but, I think, they're highly approachable aside from the issues some people have with Scheme and Racket (…Read on HN ↗
Yeah, it is conceptually interesting. I like giving students perspective and in 770 (https://www.cs.cmu.edu/~wasm/cs17-770/fall2025/) I might spend half or less of a lecture on tracing and I don't pull punches on how I think it ends up not really working well in real systems. It's a good opportunity to talk about program behavior and the cost/benefit of speculation. We spend a lot more time on type feedback, ICs, and deoptimization which are the more universal concepts that can be applied to mu…Read on HN ↗
WJW13.6k karma
Not GP, but after doing Crafting Interpreters I was kinda left with a gap in my knowledge regarding the conversion of an AST into native code. Also kinda missing was optimization passes over an AST. I somewhat understand the idea, but it would definitely be nice to have a more guided book/article for this. Crafting Interpreters is definitely a recommended read, but it stops at Interpreters (fair enough, the book is thick enough). Crafting Compilers would need at least 4-5 extra chapters IMO.Read on HN ↗