In this project, we created a one-pass compiler for the C-minus programming language. C-minus is a simplified version of the C programming language.
Collaborators:
This project was divided into 3 phases:
In this phase, we developed the scanner for our compiler. The scanner takes care of tokenization of the program given to it. The documentation of this phase can be found here. This documentation also contains the token types recognized by the C-minus language.
In this phase, we made the parser for our compiler. By identifying the C-minus grammar, the compiler can generate the program's parse tree, and detect potential grammatical errors. The documentation of this phase can be found here. This documentation contains the Context-Free grammar of C-minus.
In this phase, we went on to make the intermediate code generator of our compiler. The development kicked off by first generating the augmented grammar of C-minus. The documentation of this phase can be found here. This documentation also contains the three-address codes generated by the intermediate code generator.