A compiler for subset of C language. The aim of the project is to create a self-compiling compiler which will generate assembly for actual hardware: choosing ARM Aarch64 due to its RISC architecture. Following are few of the goals for the first version of the compiler:
| Milestone | Task | Priority | Status | 
|---|---|---|---|
| Frontend support for C-- | Lexer for numeric values | P0 | Complete | 
| Recursive Descent Parser | P0 | In progress | |
| Support for more types | P0 | Yet to start | |
| Support for loops | P0 | Yet to start | |
| Support for functions | P0 | Yet to start | |
| Support for pointers | P0 | Yet to start | |
| IR and CodeGen support for ARM Aarch64 | SSA IR form | P0 | Yet to start | 
| Fold optimistation | P0 | Yet to start | |
| Code generation for Aarch64 | P0 | Yet to start | |
| Frontend support for C89 | Additional support for C89 language constructs | P1 | Yet to start | 
| Backend support for x86_64 | P2 | Yet to start | 
- C-- language reference: https://www.microsoft.com/en-us/research/wp-content/uploads/1998/01/pal-manual.pdf
- C89 language reference: https://en.cppreference.com/w/c
- Compiler writing journey: https://github.com/DoctorWkt/acwj
- Awesome compilers: https://github.com/aalhour/awesome-compilers