
Coursera: Compiler Class, taught by Alex Aiken - unignorant
https://www.coursera.org/course/compilers
======
cottonseed
Compilers is a great class. I took it as a sophomore, and each year
afterwards, when the compiler project was announced, I'd spend a few sleepless
nights (and days) banging out a compiler. I must have written four or five
compilers for various architectures before I turned pro. No surprise my
biggest exit was a software tools company.

~~~
int3
Do you mean that you did your school's compiler class project each year
despite not taking the class, and every year they were targeting a different
architecture?

~~~
cottonseed
Yeah. They redesigned the class the year after I took it (we programmed in CLU
and targeted the VAX) and different people taught it, so it was also changing.
Also, I'd vary things. One year I wrote a sparc babckend (which had some
unusual features like register windows) in C; that definitely wasn't what the
class was doing.

~~~
int3
I like that idea, and I think I'm going to try it. I'm slightly perturbed that
my school doesn't have an advanced compilers course, but I could definitely
use this strategy as a way of learning more.

~~~
cottonseed
A few other ideas to play with: you might go through a book like Programming
Language Pragmatics by Scott and implement various kinds of languages and
language features. Understanding how various language features map to the bare
metal can be very illuminating. The second is to play with various backends. I
was crazy about learning ISAs and computer architecture back then. Finally,
you can play with "middle end" ideas: IRs, program analyses and optimizations.
Once you get past the book stage, there is a HUGE literature on compiler
analyses and optimizations.

~~~
int3
Sounds like a plan. Thanks for the ideas!

