Compilateur en OCaml vers du MIPS
This repository has been archived on 2022-12-27. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2022-12-27 17:22:22 +01:00
tests indent 2022-12-27 17:22:22 +01:00
.gitignore ignore parsers generated files 2022-12-23 05:07:19 +01:00
.ocamlformat use ocamlformat 2022-12-06 22:22:48 +01:00
ast.ml * add < to baselib 2022-12-13 17:10:14 +01:00
baselib.ml Add or operator 2022-12-22 19:20:59 +01:00
compiler.ml change some variables names so its more readable 2022-12-27 17:07:24 +01:00
errors.ml change some variables names so its more readable 2022-12-27 17:07:24 +01:00
lexer.mll change some variables names so its more readable 2022-12-27 17:07:24 +01:00
main.ml change some variables names so its more readable 2022-12-27 17:07:24 +01:00
Makefile add readme to archive 2022-12-27 17:17:56 +01:00
mips.ml Add or operator 2022-12-22 19:20:59 +01:00
parser.mly change some variables names so its more readable 2022-12-27 17:07:24 +01:00
README.md add disclaimer 2022-12-23 22:42:09 +01:00
semantics.ml change some variables names so its more readable 2022-12-27 17:07:24 +01:00
simplifier.ml change some variables names so its more readable 2022-12-27 17:07:24 +01:00
test.ml better tests 2022-12-23 05:48:04 +01:00

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