COMP 412: Topics in Compiler Construction
Keith Cooper
Department of Computer Science
Rice University
Houston, Texas, USA
Fall 2009: Room 1046, Duncan Hall, Monday, Wednesday, Friday, 11:00am

Notes


Schedule for Programming Assignments

     Lab 1:   Local Register Allocation   Available August 28
Due Wednesday September 16, 11:59 PM
Lecture on Lab: Friday August, 28
 
     Lab 2:   An LL(1) Table Generator Available: October 8      (See test grammars below)
Due Dates:
    Scanner & Parser due October 21, 11:59 PM
    Table Generator due November 4, 11:59 PM
    Report due November 6, 11:59 PM
 
     Lab 3:   Instruction Scheduler Available: November 16
Due Dates:
    Precedence Graph due November 23, 11:59 PM
    Code due December 2, 11:59 PM
    Report due December 42, 5:00 PM     <-- note early hour

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.

Documents

  • Lab 3 test and report blocks are located in ~comp412/Lab3/data on the OwlNet systems

  • Lab 3 simulator is located in ~comp412/Lab3/sim on the OwlNet systems


    Comp 412 Home Last modified Sunday, 15-Nov-2009 19:26:52 CST.