/coolc

Stanford Online's compilers course: COOL compiler implementation

Building a Compiler for the COOL programming language

This repository culminates all the content presented by the Stanford Online's Compilers course on Edx. The self-paced course is taught by Alexander Aiken and aims to build a compiler for the programming language's COOL, designed by him.

The content includes lexical analysis, parsing, syntax-directed translation, abstract syntax trees, types and type checking, intermediate languages, dataflow analysis, program optimization, code generation, and runtime systems. Resulting in a high-level language designed for humans which is systematically translated into a program written in low-level assembly more suited to machines (specifically for MIPS architecture)