Ce projet est un compilateur écrit en OCaml. Il analyse un langage source simple et génère du code en assembleur MIPS. Il a été réalisé dans le cadre d'un cours d'Interprétation et Compilation.
lexer.mll/parser.mly: Analyse lexicale et syntaxique du code source.ast.ml: Définition de l'Arbre de Syntaxe Abstraite (AST).semantics.ml: Vérification sémantique (types, variables, etc.).mips.ml/compiler.ml: Génération du code assembleur MIPS.baselib.ml: Définition de la bibliothèque standard ou des fonctions de base.main.ml: Point d'entrée du compilateur.tests/: Dossier contenant des cas de tests d'exemples comprenant des opérations mathématiques, des conditions, des boucles, etc.
Pour compiler et exécuter ce projet, vous aurez besoin de :
- OCaml et du gestionnaire de paquets OPAM
- Dune (le système de build pour OCaml)
- Un émulateur MIPS (tel que SPIM ou MARS) pour exécuter les fichiers sortants
.s.
Le projet utilise dune pour la compilation. À la racine du dossier projet, exécutez simplement :
dune buildPour compiler un fichier de test et générer le fichier assembleur MIPS correspondant, lancez (en remplaçant le nom de l'exécutable selon ce qui est défini dans votre fichier dune) :
dune exec ./main.exe -- tests/test_add.txtVous pouvez tester le code assembleur généré en utilisant un outil comme spim :
spim -file tests/test_add.s