8.3

6 Project Milestones

In this course you will build an optimizing ahead-of-time compiler from a high-level language with functional and imperative features to x86-64. While a single piece of software, the project is presented through a series of milestones in which you will gradually build and refine your compiler. After each milestone, you will have a complete compiler from some source language to machine code.

The project proceeds bottom-up. We start with the "lowest" level of abstraction, assembly language, and gradually design and implement new layers of abstraction as languages.

The milestones have not been updated for this semester yet; you can view the prior terms milestone at https://www.students.cs.ubc.ca/~cs-411/2020w2/milestone_top.html. There will be some changes this semester.

    6.1 Assignment 0: x64 to elf64

    6.2 Milestone 1: Abstracting x64 Boilerplate

    6.3 Milestone 2: Towards a Declarative Language