Thèse soutenue

Une approche uniforme a la specialisation de programmes et a la specialisation de donnees

FR
Auteur / Autrice : Sandrine Chirokoff
Direction : Charles Consel
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2000
Etablissement(s) : Rennes 1

Résumé

FR

Le developpement de logiciels doit concilier deux proprietes importantes et contradictoires : genericite et performance. Pour resoudre ce probleme, une approche prometteuse consiste a utiliser differentes techniques de specialisation pour optimiser un programme generique en fonction d'un contexte d'utilisation donnee. Toutefois, le degre de specialisation d'un programme repose en grande partie sur les analyses qui identifient les calculs dependant du contexte d'utilisation. Ces analyses, lorsqu'elles traitent un langage de taille reelle tel que c, demandent un effort de developpement considerable et requierent une mise au point delicate. Cette situation constitue un frein a l'exploration des differentes techniques de specialisation pour un langage de taille reelle puisque ces techniques ont jusqu'a maintenant ete etudiees isolement. Ainsi, on constate que les deux principales strategies de specialisation ont toujours ete traitees separement. Ces deux strategies sont la specialisation de programmes et la specialisation de donnees. Bien que les transformations de programmes effectuees par ces formes de specialisation soient differentes, l'identification des calculs invariants est un objectif commun a ces deux techniques. Cet aspect suggere que les analyses preparant la phase de transformations pourraient faire l'objet de diverses factorisations. Dans cette these, nous formalisons les analyses de la specialisation de donnees dans le but d'uniformiser cette methode avec le specialiseur de programmes tempo. Ce travail permet, d'une part, l'integration des analyses necessaires a la specialisation de donnees, et, d'autre part, la factorisation des developpements de ces analyses. Nous montrons enfin que ce nouveau type de specialiseur fournit au programmeur les strategies complementaires qui elargissent la portee de la specialisation. Nous illustrons les avantages et les limitations de ces strategies et leur combinaison sur une variete de programmes. Nous en concluons que la combinaison de ces deux techniques permet de traiter efficacement l'eventail des opportunites presentes dans un meme programme.