During my years at EPITA, I had the opportunity to implement a compiler of the Tiger Language in C++. I also use Flex and Bison to parse the language.
This project, which last 6 months, was divided in required parts:
There are also optional parts in the project, which we all did:
As it was a very big project, we implement a lot of tests (around 12000) to ensure our compiler followed the Tiger Compiler Reference Manual. This also us to have a working compiler at the end, and generate executable for many CPU architectures such as:
And some intermediate Representation language like:
Unfortunately, this project is not open-source, as it is part of the EPITA program. But the Tiger Compiler Reference Manual provided by the LRDE is available here. You can also find the Tiger Project Assignment¶ here