Fall 2019: HRZ 212 on
Monday, Wednesday, and Friday at 11:00am
Lab 1 will be available during the first week of classes.
Schedule for Programming Assignments
All lab documents will be posted as links in this table.
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.