Mots clés : évaluation partielle,
Java, spécialisation .
Participant : Charles
Consel.
Figure 1: Spécialisation de programmes
Java
|
|
Nous avons développé un prototype de spécialiseur Java,
nommé JSpec (voir module 5.2), par
intégration d'outils que nous avons antérieurement réalisés
(voir figure 1) : JSCC, le
compilateur des classes de spécialisation (voir module
5.3), Harissa notre
traducteur de Java vers C (voir module 5.2), Tempo (voir
module 5.1) et Assirah, un
traducteur arrière de C vers Java. De ce fait, un programme
Java spécialisé peut être soit exécuté au sein du système
d'exécution d'Harissa, soit être re-traduit en Java pour être
exécuté par tout interprète ou compilateur à la volée Java
standard.
Nous avons utilisé JSpec pour optimiser une application de
filtrage d'images, avec un gain d'un facteur 4 en temps
d'exécution [12], et une mise en oeuvre incrémentale des
points de reprise [22]. Pour cette dernière application, le gain
est proportionnel à la complexité de la structure objet du
programme et au schéma de modification des objets. Sur nos
expériences, nous avons mesuré un gain d'un facteur allant
jusqu'à 15.
JSpec est disponible via le Web à l'adresse http://www.irisa.fr/compose/jspec.