Skip to content

Mathisdjango/Compilateur-Ocaml-vers-MIPS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projet de Compilation

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.

📁 Structure du projet

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

🛠️ Prérequis

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.

🚀 Utilisation

Compilation

Le projet utilise dune pour la compilation. À la racine du dossier projet, exécutez simplement :

dune build

Exécution

Pour 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.txt

Tests

Vous pouvez tester le code assembleur généré en utilisant un outil comme spim :

spim -file tests/test_add.s

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors