ASM: un outil de manipulation de code pour la ralisation de systmes adaptables Systmes composants ad - PowerPoint PPT Presentation

1 / 13
About This Presentation
Title:

ASM: un outil de manipulation de code pour la ralisation de systmes adaptables Systmes composants ad

Description:

format des classes, probl mes r soudre, BCEL et SERP. Notre approche ... JABYCE : canevas de manipulation de classes bas sur ASM et la programmation par ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 14
Provided by: brun93
Category:

less

Transcript and Presenter's Notes

Title: ASM: un outil de manipulation de code pour la ralisation de systmes adaptables Systmes composants ad


1
ASM un outil de manipulation de code pour la
réalisation de systèmes adaptables Systèmes à
composants adaptables et extensibles17, 18
octobre 2002
  • E. Bruneton, R. Lenglet, T. Coupaye

2
Plan
  • Motivations
  • Travaux existants
  • format des classes, problèmes à résoudre, BCEL et
    SERP
  • Notre approche
  • idée principale, comparaison avec BCEL et SERP
  • Exemples dutilisation
  • Performances
  • Conclusion

3
Motivations
  • Les systèmes adaptables utilisent en général des
    objets dinterposition ou des méta-objets
  • permet dassocier des propriétés
    non-fonctionnelles
  • Ces techniques nécessitent de générer ou de
    modifier du code existant
  • génération du code dinterposition spécifique
    pour une interface applicative donnée
  • modification dune classe applicative pour y
    introduire du code réifiant les événements
    souhaités
  • Pour les systèmes ouverts, ceci doit pouvoir être
    fait à la volée

4
Motivations
  • Première méthode utiliser le code source
  • pratique (code manipulé de haut niveau) mais
    lent, lourd (il faut embarquer un compilateur
    complet dans lapplication) et requiert
    évidemment laccès au code source
  • Deuxième méthode utiliser le code compilé
  • moins pratique mais plus rapide et plus léger
  • cependant les outils existants ne sont pas encore
    assez rapides et légers selon nous
  • doù lidée de faire un nouvel outil en mettant
    laccent sur les performances

5
Le format des fichiers .class
  • Table des symboles
  • Noms des champs et méthodes, descripteurs de
    types
  • Champs
  • Méthodes
  • code
  • liste ordonnée dinstructions
  • table des numéros de lignes
  • table des variables locales
  • exceptions
  • Nom du fichier source
  • Classes imbriquées

6
Problèmes à résoudre pour modifier un fichier
.class
  • Nombreux détails de (dé)sérialisation
  • Gestion de la table des symboles
  • constantes manquantes ou inutilisées
  • gestion des indexes dans cette table
  • Adresses dinstruction
  • deviennent invalides si des instructions sont
    insérées ou supprimées
  • Taille de pile maximale
  • requiert un algorithme danalyse de flot de
    contrôle

7
Approche de BCEL et SERP
  • Construire un modèle objet de la classe
  • un objet par entrée dans la table des symboles,
    par champ, par méthode, par instruction de
    bytecode
  • Détails de (dé)sérialisation complètement masqués
  • Gestion de la table des symboles simplifiée
  • mais les index dans cette table ne sont pas
    masqués dans BCEL
  • Adresses dinstruction complètement masquées
  • modélisées par des références Java entre les
    objets représentant les instructions
  • Calcul automatique des tailles de pile maximales

8
Idée principale dASM
9
Comparaison des approches
  • ASM nutilise pas un modèle objet explicite
  • évite beaucoup de new
  • plus rapide, requiert moins de mémoire et
    détapes de GC
  • requiert peu de classes taille du code plus
    petite
  • les modifications doivent être faites avec des
    visiteurs
  • ok pour les modifications simples
  • mais complexe pour les modifications  non
    locales 
  • élimination du code mort, optimisation de
    lallocation des variables locales
  • on peut cependant implémenter
  • un visiteur ASM qui construit un modèle objet des
    classes quil visite
  • des méthodes accept pour faire visiter ce modèle
    objet à un visiteur ASM
  • pas facilement extensible

10
Comparaison des approches
  • Détails de (dé)sérialisation
  • complètement masqués, comme dans BCEL et SERP
  • Gestion de la table des symboles
  • complètement masquée à lutilisateur, comme dans
    SERP
  • Adresses dinstruction
  • modélisées par des objets Label
  • Calcul des tailles de pile maximales
  • automatique ou manuel, comme dans BCEL et SERP

11
Exemples dutilisation
  • Actuelles
  • ProActive génération dobjets dinterposition
     réificateurs 
  • Fractal génération dobjet dinterposition,
    classes mixins, fusion de classes
  • Futures
  • JABYCE canevas de manipulation de classes basé
    sur ASM et la programmation par composants
    (Fractal).
  • Envisageables
  • JORM, JOnAS, Jonathan

12
Performances
  • Temps pour charger 1155 classes
  • Sans adaptation dynamique des classes 2 s
  • Avec adaptation dynamique des classes

13
Conclusion
  • ASM
  • est similaire a BCEL ou SERP
  • utilise le patron Visiteur sans modèle objet
    explicite associé
  • doù un outil beaucoup plus petit et plus rapide
    que BCEL et SERP
  • Travaux futurs
  • Comment rendre ASM plus extensible tout en
    gardant la même approche et les mêmes
    performances?
Write a Comment
User Comments (0)
About PowerShow.com