Traducteur de bytecode Java en bytecode Cil

Sylvain Pasche

EPFL

2003


Table des matières

Introduction
Abstract
But du projet
Cadre administratif
Avantages et applications
Structure du rapport
Partie théorique
Le deux plates-formes
Traduction des structures des deux bytecodes
Traduction des instructions
Implémentation
Introduction
Parcours des technologies existantes, choix effectués
Structure du traducteur, description de l'implémentation
Limitations d'implémentations
Conclusions, tests

Liste des tableaux

1. Equivalence entres les méthodes JVM et CLR de java.lang.Object
2. Modificateurs d'accessibilité
3. Autres Modificateurs
4. Traduction des types simples
5. Correspondance entre les blocs d'exception JVM et CLR

Liste des exemples

1. Redirection d'une méthode vers une classe auxiliaire
2. Création d'un objet avec new
3. Traduction des instructions new - dup - invokestatic pour la création d'objets
4. Traduction d'un instruction d'accès à un champ
5. Slot utilisé par deux types références
6. Cas où l'algorithme naïf ne fonctionne pas
7. Transitions de pile extrait de la spécification de la machine virtuelle
8. Traduction de l'instruction lookupswitch avec enchaînement de tests
9. Traduction de l'instruction lookupswitch avec dichotomie
10. Bloc try-catch-finally
11. Traduction d'une instruction dcmpl
12. Fichier assemblies.properties
13. Fichier java2il.properties