Compiler Analysis & Transformations

In my first quarter at Northwestern, I had the opportunity to take Dr. Simone Campanoni's Compiler Analysis and Transformation (CAT) course. In this intensive course, we learned about the fundamental parts of the middle-end of a compiler, including data-flow analysis, optimizations, control-flow analysis, and Lattice Theory. To make sure the theory we learned in lecture /really/ stuck, we implemented our own analyses and transformations to take a specialty data-flow language and optimize it for running time.

I greatly appreciate Dr. Campanoni for teaching this course, and my lab-mates for helping me through LLVM intricacies I accidentally stumbled into. I expect the teachings from this course will continue to benefit me for many years (and projects) to come!