Compilateur en OCaml vers du MIPS
tests | ||
.gitignore | ||
.ocamlformat | ||
ast.ml | ||
baselib.ml | ||
compiler.ml | ||
errors.ml | ||
lexer.mll | ||
main.ml | ||
Makefile | ||
mips.ml | ||
parser.mly | ||
README.md | ||
semantics.ml | ||
simplifier.ml | ||
test.ml |
Compilateur vers du MIPS en OCaml
Usage
Compilation
$ make
Utilisation
$ ./main.byte {fichier source} > sortie.s
Une fois le fichier assembleur créé, il est possible d'utiliser spim :
spim -file sortie.s
Lance les tests
Certains tests doivent passer, certains non : cf. le contenu des tests.
$ make test
Fonctionnalités
- Type
int
- Type
bool
- Type
string
- Déclaration / assignation de variables
- Librairie standard (multiplication, addition, comparateur, print, ...)
- Conditions
- Boucles
- Fonctions utilisateurs récursives (arguments et valeur de retour typé)
Améliorations
- Fonctions de la baselib sont inlinées
Problèmes connus
- Pas de parenthèses pour les calculs