La programmation synchrone a été proposée pour faciliter la conception et la programmation des systèmes réactifs (systèmes dont le rôle est de réagir continûment à leur environnement physique, celui-ci étant incapable de se synchroniser avec le système). Ces systèmes sont très souvent répartis, que ce soit pour des raisons d'implantation physique, d'amélioration des performances ou de tolérance aux pannes. En outre, les travaux sur la compilation des langages synchrones ont conduit à utiliser une représentation interne des programmes sous forme d'un automate d'états fini : c'est le format OC.
Ce travail porte donc sur la répartition automatique des programmes OC. La principale difficulté est d'assurer l'équivalence fonctionnelle et temporelle entre le programme centralisé initial et le programme réparti, et de prouver cette équivalence, ce qui est indispensable dans le domaine du temps réel critique. Nous nous attachons également à minimiser localement la structure de contrôle de chaque programme réparti. Pour cela nous développons un algorithme original de réduction des tests "à la volée" utilisant des techniques de bisimulation.
D'autre part nous définissons complètement l'environnement d'exécution des programmes répartis. Ici notre principal souci est de fournir une solution la plus proche possible de l'exécution centralisée.
Enfin dans le but d'expliquer les désynchronisations introduites par la répartition, nous proposons une sémantique originale du langage synchrone Lustre, sémantique définie par des ordres partiels.
@PhdThesis{Gir94, author = {A. Girault}, title = {Sur la R\'epartition de Programmes Synchrones}, school = {INPG}, year = {1994}, address = {Grenoble, France}, type = {PhD Thesis}, month = {January} }