MIT OpenCourseWare
  • OCW home
  • Course List
  • about OCW
  • Help
  • Feedback
  • Support MIT OCW

Projects

The main course work of 6.035 is the design and implementation of a compiler. In each segment of the course, a part of the compiler will be constructed. The five segments are: the scanner and parser, semantic checker, code generator, data-flow optimizer and instruction optimizer. All the five assignments are group projects. Students may choose between two versions of the compiler project: an 18-unit version (more time consuming) and a 12-unit version. The 12-unit version of the project is intended to provide a hands-on experience of building a simple yet complete compiler. The 18-unit version of the project is intended to also illustrate some of the real world problems that arise in building industrial-strength compilers. The project documents in this section refer to Athena, which is MIT's UNIX-based computing environment.

Project Overview (PDF)

Decaf Language Definition (PDF)

Espresso Language Definition (PDF)

Segment I: Scanner-Parser Project (PDF)

JLex (PDF)

Infrastructure Tools (PDF)

IR Framework (PDF)

Segment II: Semantic Analysis Project Assignment (PDF)

Segment IV: Code Generation (PDF)

ASM Toolkit (PDF)

MIPS R2000 (PDF)

Running Under IRIX (PDF)

Data Flow Optimizations (PDF)

Low-level Optimizations (PDF)