Skip to content
Tech News
← Back to articles

CS 6120: Advanced Compilers: The Self-Guided Online Course (2020)

read original more articles
Why This Matters

The CS 6120 course offers an in-depth, research-oriented exploration of compiler design and implementation, utilizing open-source tools and papers to deepen understanding. Its self-guided format makes advanced compiler topics accessible to learners worldwide, fostering innovation in programming language optimization and runtime systems. This educational resource is significant for both students and industry professionals aiming to push the boundaries of compiler technology.

Key Takeaways

CS 6120: Advanced Compilers: The Self-Guided Online Course

CS 6120 is a PhD-level Cornell CS course by Adrian Sampson on programming language implementation. It covers universal compilers topics like intermediate representations, data flow, and “classic” optimizations as well as more research-flavored topics such as parallelization, just-in-time compilation, and garbage collection. The work consists of reading papers and open-source hacking tasks, which use LLVM and an educational IR invented just for this class.

This page lists the curriculum for following this course at the university of your imagination, for four imagination credits (ungraded). There’s a linear timeline of lessons interspersed with papers to read. Each lesson has videos and written notes, and some have implementation tasks for you to complete. Tasks are all open-ended, to one degree or another, and are meant to solidify your understanding of the abstract concepts by turning them into real code. The order represents a suggested interleaving of video-watching and paper-reading.

Some differences with the “real” CS 6120 are that you can ignore the task deadlines and you can’t participate in our discussion threads on Zulip. Real 6120 also has an end-of-semester course project—in the self-guided version, your end-of-semester assignment is to change the world through the magic of compilers.

The instructor is a video production neophyte, so please excuse the production values, especially in the early lessons. CS 6120 is open source and on GitHub, so please file bugs if you find problems.

When you finish the course, please fill out this feedback form.

Efficient Path Profiling

Thomas Ball and James R. Larus. MICRO 1996.

Provably Correct Peephole Optimizations with Alive

Nuno P. Lopes, David Menendez, Santosh Nagarakatte, and John Regehr. PLDI 2015.

... continue reading