Skip to main content
← Tech Stackups News
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.

jcranmernotable35.3k karma2 comments
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 ↗
Jtsummersnotable28.4k karma2 comments
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 ↗
titzer19.7k karma4 comments
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 ↗