Analyseur syntaxique de bytecode Java Contact : B. Folliot (mail: [email protected]) Matériel : PowerPC-Unix Langage : C et/ou Lisp (ou Java) Outils : VVM et bibliothèque graphique Prérequis : programmation Unix, systèmes d’exploitation, systèmes répartis Nombre d'étudiants par projet : 2-3 But : Obtenir une expérience par la pratique de la réalisation effective de mécanismes de systèmes répartis dans le cadre d'un projet de recherche du LIP6. Sujet : Le projet Machine Virtuelle Virtuelle définit une plate-forme d'exécution minimale, extensible et dynamiquement adaptable, appelée microvm. Elle peut être enrichie par des scripts (appelés VMLets) ou des bibliothèques existantes (des .so sous Linux) qui définissent un environnement de programmation et d'exécution dédiés pour une application. Par exemple, la VMLet JnJVM enrichit la microvm avec un environnement Java standard capable d'exécuter n'importe quelle application Java (1.0 à 1.5). D'autres VMLets peuvent ensuite être ajoutés à chaud pour adapter dynamiquement l'exécution des applications (ajout de migration, monitoring, etc). Une VMLet de migration de bytecode Java a été développée pour distribuer l'exécution d'une application Java dynamiquement et de manière transparente. Pour connaître ce qu'il est intéressant de migrer, la VMlet effectue un monitoring basique de l'application. La migration de bytecode nécessite de connaître ce qui peut être migré avant d'appliquer la VMLet: Il n'est par exemple pas possible de migrer l'exécution de méthodes utilisant des ressources locales (thread, fenêtre graphique, descripteurs de fichiers). Il faut aussi connaître certaines informations sur l'exécution d'une méthode, par exemple les paramètres qu'elle modifie, ou les variables globales qu'elle utilise. Mise en oeuvre : Les objectifs des travaux sont: 1) Effectuer une recherche sur les analyseurs statiques de bytecode Java existants, quels sont leurs objectifs, et quels parseurs ils utilisent, 2) Proposer puis implanter un algorithme qui permettra de connaître quels bytecodes peuvent être migrés. L'implantation pourra utiliser un analyseur syntaxique de bytecode Java existant. Compétences espérées: Compilation, Lexeur/Parseur, Java Informations sur la VVM: http://vvm.lip6.fr