3 ms·
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 lang
by gbarboza 12y ago
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 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.
- rayiner 12y agoI think the reason books/courses spend so much time on lexing/parsing is that finite automata, etc, are very broadly applicable concepts, more so than the later material.
- plorkyeran 12y agoThe parsing/lexing part is the onyl part I've made direct use of in real projects. Everything else provided very important background knowledge that has occasionally proved useful, but little that applies to anything other than writing a compiler.
- trurl 12y agoI could swear at least one of the years Peter Lee taught it they worked backwards, but maybe my memory is off.
- trurl 12y agoUnfortunately, it looks like all his course materials have disappeared from the web. Haven't had a chance to check the Internet Archive.