Navi Compiler

Compiler from a safe C-like language to x86 assembly. Includes SSA conversion, SCCP, register allocation, and a language‑level threading library. Written from scratch for CMU 15-411.


During the fall semester of 2020, along with a partner, I wrote a compiler for the C0 programming language. We implemented all parts of the compiler from scratch in Rust.

Optimizations

In addition to compiling the base language, we implemented a variety of high and low level optimization strategies and analyzed our results:


Language-Level Parallelism

For our final project, we designed and implemented a language extension (C-SPAN) for easily writing parallel programs:


Written on June 23, 2021