Minimal++ is a minimalistic programming language developed for the Compilers course of cs.uoi.gr. It includes some interesting features that few languages support such as nested functions. It also includes pass by value and by reference, recursive calls, functions and procedures and many more. On the other hand Mininal++ is not supporting basic programmer tools such as for-loops or strings.
For more details about Minimal++ check doc folder.
I had to develop in Python language a fully functional compiler for Minimal++. Final language derived from compiler ready to assemble using MARS 4.5 MIPS Assembler and Runtime Simulator
The project was developed in 4 phases:
- lexical and syntax analysis
- intermediate code (and its equivalent in C)
- semantic analysis and symbol table
- Final code and report
Minimal++ files.
Intermediate code files.
Minimal++ code equivalent in C (doesn't support minimal++ programs with declared functions).
Final code in assembly MIPS.
To see examples of this files check tests folder.
Here is an example output of symbol table(in our case the terminal output for test3.min)
3.6.9
python compiler.py *.min