[Up]
Corosol, une JVM modulaire paramétrable à la volée
With Christophe Deleray, Gilles Roussel and Etienne Duris
Résumé
Pour étendre les fonctionnalités du langage ou pour affiner le
contrôle du programmeur sur l'exécution des programmes, de nombreux
travaux s'intéressent à des modifications de la machine virtuelle
Java. Motivés par des problèmes spécifiques, ces travaux
aboutissent souvent à des implantations ad hoc qui sont
difficiles à comparer ou à combiner. Dans cet article, nous
présentons Corosol, une nouvelle plate-forme de test et
d'intégration pour ces extensions. Corosol est une machine virtuelle
Java ouverte, écrite en Java, dont l'architecture est basée sur des
composants auxquels le programmeur des applications a accès. Il peut
bien sûr changer ces composants avant le démarrage de la machine
virtuelle, mais il peut surtout les modifier, les remplacer ou en
ajouter de nouveaux au cours de l'exécution du programme
via une API d'introspection de la machine virtuelle.
Abstract
In order to extend the functionalities of the language or to
refine the control of the developper over the software execution,
several research works focus on modifications of the Java virtual
machine. Since these works try to solve specific problems, most of
them lead to ad hoc solutions that are difficult to compare
or combine. In this article, we present Corosol, a new test
and integration platform for those extensions. Corosol is an open
Java virtual machine, written in Java, whose architecture is based
on components to which the programmer of the applications has
access. These components could be changed before virtual machine
startup, but also be modified, replaced or added at run-time by the
running application through a reflection API.
Mots clefs
Java, machine virtuelle, composants logiciels, introspection.
Keywords
Java, virtual machine, component-based software, reflection.
- B. Alpern and al., "The Jalape\~no Virtual Machine", IBM System
Journal, vol. 39, Feb. 2000.
Jalape\~no is the old name of the Jikes RVM Virtual Machine.
- B. Antonsson and al., "JRockit - The Faster Server JVM", 2002.
White paper.
- P. Doyle and T. Abdelrahman, "Jupiter: A modular and extensible JVM", in
Proceedings of the Third Annual Workshop on Java for High-Performance
Computing, ACM International Conference on Supercomputing, pp. 37-48,
ACM, June 2001.
- Rémi Forax, Etienne Duris, and Gilles Roussel, "Java multi-method
framework", in International Conference on Technology of Object-Oriented
Languages and Systems (TOOLS'00), (Sydney, Australia), pp. 45-56, IEEE
Computer Society, Nov. 2000.
- E. Gagnon and L. Hendren, "SableVM: A research framework for the
efficient execution of Java bytecode", in Proceedings of the Java
Virtual Machine Research and Technology Symposium (JVM '01), pp. 27-39,
Apr. 2001.
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design
Patterns, Catalogue de modèles de conception réutilisables.
Vuibert, 1999.
- Adele Goldberg and David Robson, Smalltalk-80: The Language and Its
Implementation.
Addison-Wesley, 1983.
- B. Lewis, B. Mathiske, and N. Gafter, "Architecture of the PEVM: A
High-Performance Orthogonally Persistent Java Virtual
Machine.", in Ninth International Workshop on Persistent Object Systems:
Design, Implementation and Use, Sept. 2000.
- T. Lindholm and F. Yellin, The Java Virtual Machine Specification.
SUN Press - Addison-Wesley, 2 ed., 1999.
- Jacques Malenfant, Marco Jacques, and François Nicolas Demers, "A tutorial
on behavioral reflection and its implementation", in Proceedings of the
Reflection 96 Conference (Gregor Kiczales, ed.), (California), pp. 1-20,
Apr. 1996.
- I. Piumarta, B. Folliot, L. Seinturier, and C. Baillarguet, "Highly
configurable operating systems: the VVM approach", in Proceedings of the
ECOOP'2000 Workshop on Object Orientation and Operating Systems, June
2000.
- Brian C. Smith, "Reflection and semantics in LISP", in Proceedings of
the 11th symposium on Principles of programming languages, pp. 23-35,
1984.
- P. Steyaert, Open design for object-oriented languages, a foundation for
specialisable reflective language framework.
PhD thesis, Brussels Free University, 1994.
- Antero Taivalsaari, "Implementing a java virtual machine in the java
programming language", Tech. Rep. TR-98-64, Sun, 1998.
- P. Tullmann, M. Hibler, and J. Lepreau, "Janos: a Java-oriented OS for
Active Networks", IEEE Jour. on Selected Areas in Com., vol. 19,
pp. 501-510, Mar. 2001.
- S. J. Tjasink, "PLAVA: a persistent, lightweight Java Virtual
Machine", Master's thesis, University of Cape Town, Departement of Computer
Science, Feb. 1999.
- Roel Wuyts and Stéphane Ducasse, "Symbiotic reflection between an
object-oriented and a logic programming language", in In ECOOP 2001
International Workshop on MultiParadigm Programming with Object-Oriented
Languages, 2001.
- John Whaley, "Joeq: A Virtual Machine and Compiler
Infrastructure", in Proc. of the Workshop on Interpreters, Virtual
Machines, and Emulators, pp. 58-66, June 2003.
Download
The final version of the paper is copyrighted. Please send me an email to have the final version.
|
24 January 2015 22:04:54 |