:: Enseignements :: ESIPE :: E4INFO :: 2007-2008 :: Compilation ::
[LOGO]

Génération de Bytecode


Le but de ce TD est de s'initier à la génération de Bytecode. Plus spécifiquement, nous tenterons de générer du Bytecode permettant d'évaluer une expression booléenne.

Ressources

Télécharger le module ASM ici. La commande
 
  java -classpath "asm.jar;asm-util.jar" org.objectweb.asm.util.ASMifierClassVisitor org/domain/package/MyClass.class
			
permet de donner le code permettant de générer le Bytecode de la classe MyClass.class.

La Javadoc d'ASM se trouve ici.

Exercice 1 - Commencer

NOTE : Pour cet exercice, il est interdit d'utiliser Eclipse.

Exercice 2 - Nombres complexes

Ecire un code Java permettant de générer en Bytecode la classe Complex.class se comportant comme dans le code suivant:
Tester ensuite cette classe en l'important dans une autre classe.

Exercice 3 - Quelques expressions booléennes en Bytecode

Exercice 4 - Compilation des expressions booléennes en Bytecode

  • Ecrire une classe SimpleCompilerMain qui permet de compiler l'expression booléenne placée dans un fichier en argument sous la forme d'une classe Java exécutable. Pour cela, vous repartirez de l'analyseur syntaxique du td6 et vous écrirez un visiteur de l'AST permettant de générer le Bytecode associé à l'expression booléenne: implémenter une méthode visit() par opération booléenne (ou production de la grammaire). Dans un premier temps, fixer une taille de pile arbitraire.
  • Dans un deuxième temps, calculer automatiquement la taille de la pile, en fonction des instructions générées.