A small-scale compiler for the ChocoPy language.
Solo project

As part of a third-year university coursework, I was tasked with implementing a compiler for ChocoPy, a statically-typed subset of Python designed for teaching compiler construction. The objective was to build a complete compilation pipeline that translates high-level source code into LLVM IR, while adhering to a formally defined language specification. This project provided a structured environment to explore the core stages of compilation, including parsing, semantic analysis, and code generation, as well as the challenges of enforcing a static type system and producing correct low-level representations of high-level programs.