Brian Zheng
About
Experiences
Projects

Compiler

In my compiler class, my team created a fully-functional compiler that could translate a subset of the Decaf programming language into Assembly, using standard compiler methods and optimizations.

Rust
Git

Step by Step

Step by Step

Mission Purpose

The compiler requires many different steps to be completed.

Resources

Rust
Git

Journey

I learned the different steps of how compilers work, including parsing, semantic analysis, and code generation.

Results

We made progress on each step of the compiler's development, testing each step to ensure it was working as intended. This led us to create a fully-functional compiler.

Optimizations

Optimizations

Mission Purpose

Our compiler needs to be fast and efficient.

Resources

Rust
Git

Journey

We learned the implementation for several optimizations and implemented several dataflow optimizations as well as register allocation.

Results

Our compiler became almost twice as fast.