On "Compilers"

link

At Georgetown College, I took Compilers, a 400-level capstone course that scared the hell out of everyone. Everyone was like 10 students, because our CS department was that small. However, it was a required course. If you wanted to graduate witha B.S. in CompSci, then you had to have this course.

The prof was Bryan Crawley. Mister Crawley (insert Ozzy reference here). A strange guy, he was without a terminal degree, which made him the bootheel of the Math, Physics, and Computer Science department. The one thing this guy *loved* was compilers–he started introducing compiler-like concepts back in CS 111.

Anyway, the class was pretty boring, but it covered all the bases–using lex and regex’s to tokenize, then using yacc to generate the Abstract Syntax Tree, and then writing the C code to do the code generation by traversing the tree. The language we were using was a fairly trivial stack-based affair, but it did demonstrate most of the problems with compillation. In particular, I thought ‘backpatching’ (a natural result of a recusive-descent parser) was going to make my brain melt.

But, eventually, we figured it out.

I do encourage everyone slogging through a decent CS program to seek out a compiler class, taught by a good prof.