Ce dépôt contient un compilateur (lexeur, parseur, typeur et compilateur) pour le langage Mini-ADA, écrit en OCaml.
Ce compilateur a été réalisé par Lucas Willems pour le cours "Langages de programmation et compilation" donné par Jean-Christophe Filliâtre pour la L3 d'informatique de l'ENS Ulm.
En plus du compilateur (dans le dossier Code
), ce dépôt contient aussi un rapport sur le compilateur.
Le code contient un Makefile
permettant d'exécuter les 3 commandes :
make
: pour compiler le compilateurmake clean
: pour nettoyer les fichiers produits lors de la compilationmake tests
: pour tester le compilateur sur la série de programmes contenue dans le dossiertests
Et 6 fichiers :
ast.mli
: contenant les différentes syntaxes abstraites (après parsage et après typage)lexer.mll
: transformant un fichiertxt
en une suite de lexemesparser.mly
: transformant la suite de lexemes en un arbre de syntaxe abstraitetyper.ml
: vérifiant la correction de l'arbre de syntaxe abstraite et créant un nouvel arbre de syntaxe abstraite prêt à la compilationcompiler.ml
: transformant l'arbre de syntaxe abstraite en du code assembleur "x86-64"main.ml
: corps du compilateur, liant les fichiers précédents
La bibliothèque tierce "x86-64", créée par Jean-Christophe Filliâtre (CNRS) et Kim Nguyen (Université Paris Sud), est utilisée pour la génération du code assembleur.
Pour utiliser le compilateur, il faut d'abord compiler son code source avec la commande make
. Le compilateur est alors créé sous le nom adac
(pour ADA Compiler). Celui prend différents paramètres :
(filename)
: définit le nom du fichier à compiler. Celui-ci doit avoir l'extensionada
.--parse-only
: parse seulement le fichier (n'effectue pas l'étape de typage et de compilation)--type-only
: parse et type seulement le fichier (n'effectue pas l'étape de compilation)
Voici un exemple d'utilisation :
./adac tests/exec/bst.adb --type-only