As a project in Prof. Dr. Michael Franz's Advanced Compiler Construction class at the University of California, Irvine, I created this optimizing compiler for a simple programming language. It includes a backend for the DLX instruction set architecture with a very simple register allocator, and performs constant elimination, common subexpression elimination, and dead code elimination.