Skip to content

Bibi210/C-Homemade-Compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homemade C Compiler

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 .

Install

  • 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"

Explications

This projet is in 3 part Front-end,Middle-end and Back-end.

Front-end (Menhir , Ocamllex) :

  • Lexer (We take the source code and get token out of it)
  • Parser (Generate our pre code)

Mid-end :

  • Sementics (Most of it is type verifications)
  • Simplifier (Dead Code Cleanup and String Simplification)

Back-end :

  • Compiler (Mips Assembly Generation)

Tests

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

Optimizations

  • String Duplicate one time register
  • Simplifier Deadcode cleanup
  • Asm Cleanup of deadcode

Todo List

Objective is to finish, test and debug most of those. (If i can)

Expr :

  • Values
  • Call
  • Var
  • Assignment
  • Pointers

Instructions :

  • Declarations
  • Block
  • Do_While
  • While
  • For
  • If
  • Return
  • Break
  • Continue
  • Goto
  • Switch

Defs :

  • Functions
  • Globals

Bonus :

  • Automatic Assembly comments
  • Arrays
  • Struct
  • Typedef (Works Well if we avoid mixing with pointers)

Dibassi Brahima
L3 Informatique

About

This C (Tiny Subset) Compiler is made using ocaml.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published