JSpec, un spécialiseur pour Java

Mots clés : évaluation partielle, Java, spécialisation .



Participant : Charles Consel.

Figure 1: Spécialisation de programmes Java




\includegraphics [scale=.5,angle=0]{prototype.eps}

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.