:: Enseignements :: ESIPE :: E4INFO :: 2010-2011 :: Génération de code ::
[LOGO]

Traduction - Correction


Le but de ce TD sert à préparer la phase de génération de code. L'objectif est de traduire un petit langage dans un autre.

Ressources

Télécharger l'archive gc-ir2-td4.zip. Importer le répertoire td4. Il contient un fichier td4.ebnf qui reconnait le petit langage du TD précédent. Le fichier de configuration build.xml permet de générer les classes fondamentales de l'analyseur reconnaissant ce langage. Placer les répertoires td4/src et td4/gen-src dans le sourcepath. Si vous ne l'avez pas déjà fait, importer les répertoires lib et build-lib, et placer lib/tatoo-runtime.jar dans le buildPath.

Exercice 1 - Traduction



TranslatorEnv.java:
TranslationVisitor.java:



Exercice 2 - Fonctions

  1. Modifier la grammaire de td4.ebnf pour permettre la définition et l'utilisation de fonctions de la manière suivante:
    				def myFunction(x,y):x == y;
                    		def myFunction2(x):x*2+3;
    
    				let w = myFunction(1.1,2);
    				let z = myFunction2(3);
    			
  2. Modifier le visiteur TypeCheckingVisitor. Utiliser une table des symboles pour les variables et une autre pour les noms de fonction.