Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
#582 overall

15-411 Compiler Design

Carnegie Mellon University

1 recommender · 1 thread · recommended in 1 year, 2014 · score 1.0

Go to course ↗

A Carnegie Mellon compilers course in which students build a working compiler for a subset of the C0 language, starting with lexing, parsing, and code generation in the first lab and adding language features in each later lab.

Commenters say the build-a-whole-compiler-early approach gives the full picture within the first weeks, and that everyone they knew who finished it highly recommended it.

CS Fundamentals & Systemsadvancedproject-based#compilers#c0#code generation#parsing#cmu

Recommendations by year

20062026

What commenters said (1)

  1. Strongly recommendsgbarboza2014in “If I ever design a first course in compilers, I'll do it backwards”

    The way compilers works at CMU is by the end of the first lab you have a fully functional compiler lexing/parsing -> code generation for a subset of the C0 language. With each subsequent lab, you implement more and more features of the language. http://www.cs.cmu.edu/~fp/courses/15411-f13/assignments.html

    This is definitely closer to what is described in this post than most compilers courses, but not entirely the same.

    I agree with the post in that the current common method of starting with _just_ parsing/lexing is wrong. It's a shame that the first part of the compiler you write in these courses is, in my opinion, the most boring and least relevant to compiler theory. CMU's method of giving you the whole, although fuzzy, picture within the first two weeks wasn't viewed as wrong by me, my lab partner, or anyone else I knew who took the compilers course. In fact, everyone I knew who successfully completed the course highly recommended it to everyone they knew. This is a pretty good measure of success for a course.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help