This project is an optimizing compiler implemented in C++ that supports a custom programming language featuring signed integer arithmetic, I/O, structured control flow, and user-defined functions.
I strengthened my C++ programming skills by implementing compiler design principles. I also learned about lexical analysis by constructing a lexer that tokenizes various types of input, as well as parsing techniques. By using Static Single Assignment, I got to improve execution efficiency via optimization techniques, and also enhanced my understanding of the process within a compiler by visualizing data structures with Graphviz. Finallly, I also built my custom Makefile to streamline the build process, improving efficiency and maintainability of the project.