Traducteur de bytecode Java en bytecode
Cil
Sylvain Pasche
EPFL
Traducteur de bytecode Java en bytecode Cil
par Sylvain Pasche
Publié 2003
iii
Table des matières
................................................................................................................................................................................ 1
1. Introduction ............................................................................................................................................... 1
1.1. Abstract......................................................................................................................................... 1
1.2. But du projet ................................................................................................................................. 1
1.3. Cadre administratif ....................................................................................................................... 1
1.4. Avantages et applications ............................................................................................................. 1
1.5. Structure du rapport ...................................................................................................................... 2
2. Partie théorique ......................................................................................................................................... 3
2.1. Le deux plates-formes .................................................................................................................. 3
2.2. Traduction des structures des deux bytecodes .............................................................................. 4
2.3. Traduction des instructions ........................................................................................................... 9
3. Implémentation ....................................................................................................................................... 32
3.1. Introduction ................................................................................................................................ 32
3.2. Parcours des technologies existantes, choix effectués ................................................................ 33
3.3. Structure du traducteur, description de l'implémentation ........................................................... 34
3.4. Limitations d'implémentations.................................................................................................... 37
3.5. Conclusions, tests ....................................................................................................................... 38
Références ................................................................................................................................................... 39
iv
Liste des tableaux
1. Equivalence entres les méthodes JVM et CLR de java.lang.Object ........................................................... 6
2. Modificateurs d'accessibili............................................................................................................................... 7
3. Autres Modificateurs .......................................................................................................................................... 8
4. Traduction des types simples .............................................................................................................................. 9
5. Correspondance entre les blocs d'exception JVM et CLR ................................................................................ 26
v
Liste des exemples
1. Redirection d'une méthode vers une classe auxiliaire ......................................................................................... 7
2. Création d'un objet avec new ............................................................................................................................ 11
3. Traduction des instructions new - dup - invokestatic pour la création d'objets ................................... 11
4. Traduction d'un instruction d'accès à un champ ............................................................................................... 12
5. Slot utilisé par deux types références ............................................................................................................... 14
6. Cas où l'algorithme naïf ne fonctionne pas ....................................................................................................... 15
7. Transitions de pile extrait de la spécification de la machine virtuelle .............................................................. 20
8. Traduction de l'instruction lookupswitch avec enchaînement de tests ......................................................... 22
9. Traduction de l'instruction lookupswitch avec dichotomie .......................................................................... 24
10. Bloc try-catch-finally ........................................................................................................................... 28
11. Traduction d'une instruction dcmpl................................................................................................................ 31
12. Fichier assemblies.properties ............................................................................................................... 36
13. Fichier java2il.properties ..................................................................................................................... 37
1 / 46 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !