Generation automatique d'implementation optimisees de protocoles
Auteur / Autrice : | Claude Castelluccia |
Direction : | Walid Dabbous |
Type : | Thèse de doctorat |
Discipline(s) : | Sciences appliquées |
Date : | Soutenance en 1996 |
Etablissement(s) : | Nice |
Résumé
Un compilateur de protocoles est un outil qui genere a partir d'une specification formelle d'un protocole une implementation. Les compilateurs de protocoles produisent generalement du code de qualite mediocre en terme de vitesse d'execution et de taille du code et sont, pour cette raison, peu utilises. Dans cette these, nous montrons qu'en utilisant une approche synchrone et en optimisant le code genere, il est possible de compiler des specifications formelles en des implementations tres performantes. Nous avons developpe un compilateur de protocoles qui utilise ces deux techniques. Ce compilateur prend en entree une specification modulaire du protocole ecrite dans le langage synchrone esterel. La specification est compilee en un automate sequentiel par le compilateur esterel dans un format intermediaire (le format oc). L'automate est alors optimise et transforme en une implementation c par notre optimisateur de protocoles, appele hippco. Hippco ameliore les performances du code et reduit sa taille en optimisant simultanement la vitesse d'execution du chemin commun et la taille du chemin rare. Nous evaluons les performances des implementations de notre compilateur en specifiant le protocole tcp et en comparant les performances de l'implementation automatiquement generee avec celle d'une version manuelle derivee de l'implementation standard bsd. Les resultats sont tres encourageants. Le code genere par hippco execute moins d'instructions et utilise le cache d'instructions et le pipelining plus efficacement que le code bsd tout en ayant une taille de code raisonnable