Projet : COMPOSE

previous up next contents
Précédent : Logiciels Remonter : Logiciels Suivant : Harissa, un environnement d'exécution pour


   
Tempo, un évaluateur partiel pour C

 

 

Mots clés : évaluation partielle, langage C, spécialisation à l'exécution .



Participant : Renaud Marlet.

Nous avons conçu et développé un évaluateur partiel pour des programmes C, nommé Tempo [[1],[12]]. Une innovation importante apportée par ce système est qu'il permet la spécialisation de programmes à la compilation et à l'exécution [[23]]. Diverses analyses dont le but est de préparer la phase de spécialisation ont été conçues pour ce système [[15]]. Etant donné la richesse du langage C et le fait qu'il ait été peu étudié dans le contexte de l'évaluation partielle, le développement de ces analyses a constitué une partie importante de notre travail. Les principales analyses de programmes sont les suivantes :

Pour s'assurer que les transformations de programmes offertes par Tempo produisent un programme très spécialisé, nous avons ciblé notre travail sur les programmes système qui sont très propices à la spécialisation. Nous avons ainsi pu recenser les besoins principaux de spécialisation existants dans ce domaine et introduire les analyses et transformations correspondantes. Tempo a été notamment validé par la spécialisation d'un code système faisant partie d'un produit commercial, en l'occurence l'implémentation de l'appel de procédure à distance (RPC) développé par Sun en 1984 [[22],[17]]. Les gains en vitesse obtenus par spécialisation de ce code vont jusqu'à un facteur de 3,7 sur l'encodage des données. Tempo a été également utilisé pour optimiser la transformée de Fourrier rapide. Les gains en vitesse vont jusqu'à 9 par spécialisation à la compilation et jusqu'à 3,5 par spécialisation à l'exécution [[26]].

En mars 1998, nous avons organisé un cours de trois jours sur Tempo qui a été suivi par une vingtaine de personnes. Les participants à ce cours sont venus à la fois du monde de la recherche et de l'industrie. A cette occasion, nous avons rendu disponible la première version publique de notre spécialiseur via une licence d'évaluation. Vingt-cinq utilisateurs en disposent à ce jour, dont Bull, France Telecom et Thomson multimedia.

Dans le futur, nous envisageons la transformation de Tempo en un moteur de spécialisation multi-langages. Pour ce faire, nous comptons développer un certain nombre de frontaux à Tempo pour nous permettre de traiter d'autres langages que C. Cette approche est actuellement expérimentée pour les langages Fortran, C++ et Java.


previous up next contents
Précédent : Logiciels Remonter : Logiciels Suivant : Harissa, un environnement d'exécution pour