COOL is an object oriented programming language with a static typing system that is almost a subset of Java. The compiler written here is inspired by the Stanford Compilers Course which builds a COOL compiler from scratch.
The compiler is straightforward to install with Leiningen.
Simply download the git repo and run:
lein install
in the root directory of the project.
The Stanford course builds the compiler incrementally, where each assignment tackles one phase (e.g. parsing or lexing). Students are given a skeleton for each assignment and must fill in the relevant details.
In contrast, the compiler here is written completely from scratch, using no external libraries for lexing, parsing, code generation, or optimization. It is also written in Clojure :) whereas the course expects one to use C++ (eww) or Java (less eww).