Compilateur en OCaml vers du MIPS
- OCaml 97.8%
- Makefile 2.2%
| 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