Participants : Charles Consel, François Noël
Nous avons développé une méthode générale permettant de spécialiser des programmes à l'exécution [11]. À partir d'un programme et d'une description de ses invariants, nous produisons automatiquement à la compilation des fragments de code source. Ces fragments de code source sont incomplets dans la mesure où les invariants ne seront connus qu'à l'exécution. Ils sont ensuite transformés de manière à pouvoir être traités par un compilateur standard. A l'exécution, il ne reste plus qu'à sélectionner et copier les fragments, insérer les valeurs dynamiques et reloger certains sauts pour obtenir une spécialisation donnée.
Ces opérations sont simples et permettent donc un processus de spécialisation très efficace qui nécessite un nombre limité d'exécutions du programme spécialisé avant d'être amorti.