Thèse soutenue

Spécialisation dynamique de code par évaluation partielle

FR  |  
EN
Auteur / Autrice : François Noël
Direction : Charles Consel
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 1996
Etablissement(s) : Rennes 1

Mots clés

FR

Mots clés contrôlés

Résumé

FR

La specialisation de programmes en fonction d'invariants connus a l'execution est une technique d'optimisation qui ameliore notablement les performances. Elle permet aux applications de s'adapter a des contextes qui ne sont connus qu'a l'execution et dont la specificite ne peut donc pas etre prise en compte a la compilation. Cette technique est activement etudiee dans des domaines tres varies. Par exemple, d'importants projets de recherche utilisent la specialisation a l'execution pour optimiser des systemes d'exploitation hautement extensibles et parametriques. Cette these decrit une methode generale permettant de specialiser des programmes a l'execution. A partir d'un programme et d'une description de ses invariants, nous produisons automatiquement a la compilation des fragments de code source incomplets, dans la mesure ou les invariants ne seront connus qu'a l'execution. Ces derniers sont ensuite transformes de maniere a pouvoir etre traites par un compilateur standard. A l'execution, il ne reste plus qu'a selectionner et copier les fragments, inserer les valeurs dynamiques et reloger certains sauts pour obtenir une specialisation donnee. Ces operations sont simples et permettent donc un processus de specialisation tres efficace, qui ne necessite qu'un petit nombre d'executions du programme specialise avant d'etre amorti. Notre methode ameliore les travaux precedents sur ce sujet car: elle permet une derivation automatique des fragments a partir du programme et de ses invariants, elle ne depend pas de la machine cible, elle est formellement definie et prouvee et elle est efficace comme le montre notre mise en oeuvre pour le langage c