engineering leadership

Stanford Compilers

Posted on June 05, 2016

Welp, still on the journey down to the hardware. Now that I’ve got the nand2tetris class on building a computer from nand gates out of the way, its time to dive into compilers.

Update 2019: Looks like this coursera link is dead, I’m sure the course can be found though!

I’ve decided to take Stanford’s Coursera offering, though I’ve got a few reservations about it.

  • First, it focuses quite a lot on formal definitions of languages and grammars. This means its using set notation and big unwieldy greek characters.
  • Second, its using flex and bison to generate a lexer and a parser in c (and they have java versions). I would much rather generate one by hand to learn the algorithms involed (maybe on a smaller subset of the language, transition into generators).
  • Third, the course material is offered in a VM, with no other way to get at the course material. There are interdependent makefiles, and seemingly no way to compile the tools from source. Man, I hate doing work in a shell thats not mine on a shitty Ubuntu desktop.

However, it seems to be the best course on the material out there, so I’m going to slog through.