Compiler

An end-to-end compiler for a subset of C

🧑‍💻

3rd Year Coursework

🗓️

Oct 2024 - Nov 2024

⏱️

60 hours

Solo

Coursework

C++

LLVM

Links:  

What does the project do?

An end-to-end compiler for a subset of C, called mini-C. This involved two major stages:

This was a huge amount of work, as the language involved quite a lot of features and we had to build the whole lot.

How is it made?

The project uses LLVM for code generation, which requires a thorough knowledge of all the statements and blocks to fit them together into code. The AST generation required a good understanding of C++, a language I had not used before.

What have I learnt?