This C (Tiny Subset) Compiler is made using Ocaml.
Menhir,Ocamllex are used for front end.
It's my final projet of our compilation class at Paris 8 University.
Course available here .
-
git clone https://github.com/Bibi210/C-Homemade-Compiler.git
-
cd C-Homemade-Compiler
-
dune exec Code/main.exe --release [Test Path] && spim load "prog.asm"
This projet is in 3 part Front-end,Middle-end and Back-end.
- Lexer (We take the source code and get token out of it)
- Parser (Generate our pre code)
- Sementics (Most of it is type verifications)
- Simplifier (Dead Code Cleanup and String Simplification)
- Compiler (Mips Assembly Generation)
All tests are available in the /Tests files.
I tried my best that commits with (... Gestion) have Valids and Verified tests.
In old commits the README might be inaccurate
- String Duplicate one time register
- Simplifier Deadcode cleanup
- Asm Cleanup of deadcode
Objective is to finish, test and debug most of those. (If i can)
- Values
- Call
- Var
- Assignment
- Pointers
- Declarations
- Block
- Do_While
- While
- For
- If
- Return
- Break
- Continue
- Goto
- Switch
- Functions
- Globals
- Automatic Assembly comments
- Arrays
- Struct
- Typedef (Works Well if we avoid mixing with pointers)
Dibassi Brahima
L3 Informatique