Fall 2012: Room 1042, Duncan Hall,
Monday, Wednesday, Friday, 11:00am
Notes
Schedule for Programming Assignments
Lab 1:
TBA
Available tba
Code is due tba
Report is due tba
All lab documents will be posted on this web site.
Philosophy
In a Computer Science course, constructing assignments that require an excessive
amount of work is easy. Many compiler courses have students build large
parts of a compiler, typically for some toy language. In COMP 412 at Rice,
we have tried to distill each lab down to the point where the programming
effort is small relative to the experience and knowledge gained.
The allocator and scheduler labs both have relatively simple programming
requirements. In each case, however, you must approximate the solution to a
truly hard problem.
The LL(1) table generator lab requires more programming work, but it
encompasses both parsing (understanding the Backus-Naur Form of the grammar)
and code generation (building tables that represent the knowledge produced
by parsing and subsequent analysis.
If, after taking COMP 412, you feel that we have not provided you with
enough direct experience writing a compiler, please come talk with me about
the issue. We can construct a special projects course to provide in-depth
experience as a compiler-writer; alternatively, you can take one of the follow-on
courses with a more intense laboratory component.