CS 426

Programming Project

The overall semester project is to build a compiler for the COOL programming language, an imperative, object-oriented, type-safe language that is a model of the Java language. You will be compiling COOL down to the LLVM virtual instruction set, which is the Internal Representation for the LLVM compiler infrastructure. You will also write some dataflow optimizations on the LLVM IR. 1-unit students (see the Home page for a formal definition!) will also do a "back-end" project, related to machine code generation. Your project will be written in C++.

The programming guides and other documentation you will need for this project are available on the Resources page. To allow you to focus on the "interesting" issues, we will give you several components including:

Your (common) project will be divided into 4 parts:

All deadlines are 5:00 p.m. Central Time unless noted otherwise.

Project Details

MP1: Released 8/30. Due Monday, 9/13, 5pm. MP2: Released 9/13. Due Monday, 10/4, 5pm. MP3: Released 9/20. Due Monday, 10/25, 5pm. MP4: Released 11/1. Due Monday, 11/29, 5pm. Unit Project: Released 11/12. Due Monday, 12/13, 5pm.