Team oasis

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Contracts and Grants with Industry
Other Grants and Activities
Dissemination
Bibliography
Inria / Raweb 2002
Project: oasis

Project : oasis

Section: New Results


Implémentation des langages à objets

Participants : Denis Caromel, Ludovic Henrio, Bernard Serpette.

La première version de notre interpréteur de bytecode JVM et JCVM utilisait une structure de donnée spécifique pour la représentation des objects. Cette technique a l'avantage de pouvoir étudier divers types d'implémentation, mais se heurte au problème des fonctions natives : celles-ci doivent être réécrites afin de prendre en compte la nouvelle structure des objets, soit environ 200 fonctions dans les packages java.*.

Pour pallier ce problème, nous avons développé une seconde version de l'interprète où la structure des objets coïncide avec celle de l'interprète. Ainsi, les fonctions natives peuvent être appelées par l'interprète de bas-niveau. Néanmoins, par une granularité trop forte de l'API de reflection (java.lang.reflect.Constructor.newInstance), l'interprète de haut-niveau perd le contrôle de l'évaluation durant l'appel au constructeur.

Le premier interprète reste utilisable dans le cadre de librairies restreintes (i.e. la JCVM), tandis que le deuxième est préconisé dans le cadre d'applicatifs plus lourds sachant que les résultats obtenus (graphe d'appel, consommation des ressources,...) seront une approximation des résultats réels.


previous
next