NOTE: This is the 2015/2016 coursework, left here for interest's sake. 2016/2017 will be in a different repo, and is slightly different.
The main repository is at: https://github.com/LangProc/langproc_2015_cw.
The language processors coursework is to build a C compiler from the C90 language to MIPS assembly. It should be possible to assemble and link the output using existing tools and execute it on a MIPS CPU.
There are three intermediate milestones, which are assessed at a low weight and designed to encourage familiarity with aspects of language processors and implementation. There is a more detailed discussion of the rationale here.
The marks break-down is:
1 - Tokeniser : 10%, Due 12th Feb
2 - Parser : 20%, Due 26th Feb
3 - Code Generation : 20%, Due Thu 17th March (Updated again)
4 - Compiler : 50%, Due Friday 25th March
The overall timeline is shown below:
It is not a good idea to assume that the final two weeks are sufficient time to complete a compiler.
The target environment is the lab Ubuntu setup. You can make use of any tools available there-in.
Your submission should contain a top-level makefile that
can build the various components, including your compiler.
All outputs will be built into the bin/
directory. Apart
from that, you have complete freedom to do whatever you
want with directories and files.