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.
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.
Our compiler class at UK, taught by Prof. Kubota was a joke. Lotsa theory scribbled over the board and one project that it took most of the class the whole semester to complete. I wish we HAD done some hands-on with lex and yacc - I get the concepts behind it all but it's still easier for me to write a strtok() parser for simple stuff. That and so few people know enough to maintain a lex/yacc parser that you're just asking for trouble. Drives me nuts when someone "shows off" by writing a parser for something nearly as simple as a property file.
ReplyDelete