Compiler for smpl

Optimizing compiler and SSA generation (without generator tools) for the smpl language

Github Repository

Technologies: Python

This project was developed as a part of the UCI Advanced Compiler Construction class. The project required constructing an optimizing compiler for the small programming language smpl from scratch without using any lexer or parser generation tools. The compiler includes:

  • Recursive-decent parsing
  • SSA-based intermediate representation generation
  • Copy propagation
  • Common subexpression elimination
  • IR visualization (Dot graph language)
  • Array support (incl. common subexpression elimination on redundant array loads)