Previous Up Next

Introduction

Le projet de compilation de 3eme année d'IUP consiste à réaliser un compilateur et deux interpréteurs. Le travail est basé sur le langage MiniJaJa, et il est demandé de réaliser un interpréteur de ce langage, mais aussi de le traduire/compiler vers un autre langage appelé JaJaCode. Le programme JaJaCode ainsi produit sera également interprétable afin de pouvoir comparer les états mémoires des deux versions du programme. Pour réaliser ce travail, le projet a été découpé en modules relativement autonomes. Le découpage retenu est le suivant :
Analyse lexicale et syntaxique
Ce module a pour but de passer d'un fichier contenant un programme MiniJaJa à un arbre de syntaxe abstraite qui est la représentation du programme exploitable par les autres modules du projet.
Contrôle de type
Il a pour but de valider en partie la sémantique du programme, c'est-à-dire de vérifier si des incohérences non relevables par le module précédent sont présentes dans le programme.
Etats mémoire et Tas
Ces modules correspondent aux structures de données manipulées par les interpréteurs. D'un côté se trouve la pile d'exécution et de l'autre, le tas ou sont stockés les tableaux.
Interpretation MiniJaJa
Comme son nom l'indique, ce module permet l'interprétation d'un programme MiniJaJa sous forme d'arbre de syntaxe abstraite.
Compilation MiniJaJa ® JaJaCode
Il s'agit ici de transformer, de traduire un langage de haut niveau dans un langage cible plus simple.
Interpretation JaJaCode
Ce module nous donne la possibilité d'interpréter un programme JaJaCode fourni par le compilateur.
Interface Homme-Machine & Interfacage
Clé de voute du projet, l'interfacage est le lieu des échanges d'informations entre les modules. L'Interface Homme-Machine, qui se greffe à elle, rend l'utilisation du projet simple avec un affichage des données résultantes du travail des différents modules.
Nous allons développer dans le présent rapport les modules ci-dessus ainsi que le travail de gestion de projet sous-jacent.
Previous Up Next