![]() |
Code de l'annexe A de Compilateurs : principes, techniques et outils - 2e édition |
Nous mettons ici à disposition le code source en Java du compilateur complet listé et commenté en annexe A du livre.
Le fichier code_dragon2.tar est à télécharger sur votre ordinateur (clic droit et Enregistrer la cible sous...).
Le compilateur est constitué de cinq paquetages (voir le livre) :
- principale
- lancement
- analex
- analyseur lexical
- symboles
- gestion des symboles
- anasynt
- analyseur syntaxique
- inter
- code intermédiaire
Il est accompagné d'un jeu de programmes de test. Les fichiers dont le nom se termine par .t sont des programmes source rédigés dans le langage source employé tout au long du livre, les fichiers dont le nom se termine par .i sont les programmes produits correspondants, eux-mêmes écrits dans le langage de représentation intermédiaire employé tout au long du livre.
Pour l'anecdote, on notera que le fichier prog0.t est un fragment du programme QuickSort utilisé comme exemple récurrent dans le livre.
Dans un environnement adéquat, le compilateur s'installe et se lance sur les programmes de test au moyen des commandes suivantes :
tar xf code_dragon2.tar cd code_dragon2 makeUn compilateur de Java doit être présent et accessible sur la machine. Si ce n'est pas le cas, voir http://Java.Sun.Com/ ou effectuer avec votre outil favori une recherche sur les termes download java development kit.
Le makefile livré compile le compilateur, le lance sur les programmes du répertoire tests, et compare les résultats aux représentations intermédiaires attendues.
Par curiosité, on pourra dé-commenter la ligne
// public String toString() {return op.toString() + "_" + deplacement;}dans la classe Id du paquetage inter. Le code intermédiaire ajoutera alors son déplacement comme suffixe à chaque identificateur.