next up previous contents
Next: Le Langage Synchrone ESTEREL : Up: L'approche Synchrone et le Previous: L'approche Synchrone et le

L'approche Synchrone :

Ce sont Berry et Gonthier [6] qui ont développé cette approche synchrone. Reprenant [14] de nouveau, nous pouvons dire que cette approche s'appuie sur une hypothèse importante : l'hypothèse de synchronisme. Cette hypothèse consiste à considérer que chaque réaction d'un système réactif est instantanée. Le système produit ses sorties de manière synchrone aux entrées. C'est comme si l'on disposait d'une machine si rapide qu'elle pouvait exécuter les opérations liées au séquencement des instructions, à la gestion des processus, aux communications inter-processus et aux traitements de données élémentaires dans un temps nul (non observable).

Ainsi, le déroulement du temps n'est plus lié à l'exécution du programme mais uniquement à l'occurrence du flux d'entrée qu'il traite. Une occurrence définit un instant de l'exécution du système. Le "temps physique", qui joue un rôle si particulier dans les approches asynchrones, n'a plus de raison d'être privilégié: pour le manipuler il suffit d'écouter un signal d'entrée particulier produit par une horloge. Ceci permet une double homogénéisation: d'une part le temps se manipule comme un signal normal, d'autre part tout signal peut se manipuler comme définissant son propre temps, ce qui correspond à la notion du temps multiforme.Dans l'approche synchrone, on parle d'instant dans le sens instant logique; l'histoire du système est une séquence totalement ordonnée d'instants logiques. A chacun des instants, on peut avoir l'occurrence de zéro, un ou plusieurs événements. Les événements présents au même instant logique sont considérés comme simultanés. A l'exception de ces instants rien ne passe ni dans le système ni dans l'environnement. On rejoint ainsi le modèle du comportement d'un système réactif.D'un point de vue plus pratique, on peut dire que l'hypothèse synchrone

- permet de rendre les langages synchrones déterministes. Or les systèmes réactifs sont purement déterministes; les langages synchrones permettent de les programmer réellement ainsi, et donc de simplifier considérablement leur réalisation, leur mise au point et l'étude de leur comportement.
- permet de simplifier le raisonnement sur le temps et de le manipuler de manière naturelle et exacte. En effet, les différentes parties du programme communiquant par diffusion instantanée d'information, s'interrompent instantanément et provoquent des exceptions instantanément. La notion de temps multiforme introduit une souplesse de programmation et une possibilité d'abstraction sur les applications à développer. En outre, il existe de nombreuses primitives temporelles dans les langages synchrones qui permettent de manipuler les exceptions, les délais, ainsi que la suspension d'exécution.
- permet la validation des programmes engendrés. Ceci est dû à la sémantique formelle sur laquelle sont construits ces langages, mais cela tient aussi au déterminisme des codes produits par les divers compilateurs. La compilation d'un programme synchrone génère un automate à états fini séquentiel, déterministe et en général minimal. L'avantage est double. D'une part le code produit est efficace. Le programme parallèle initiale est traduit en un programme purement séquentiel équivalent. L'exécution d'un tel programme n'introduit pas de gestion de processus et les communications internes sont compilées et codées dans l'automate. Le temps maximal de la réaction est prévisible, et, ainsi, la validité de l'hypothèse synchrone peut être testée. D'autre part, une fois l'automate construit, il est possible d'utiliser des outils qui travaillent sur les automates pour pouvoir procéder à des vérifications formelles et s'assurer que le programme implémente bien les spécifications voulues.

Par conséquent, si on reprend notre exemple de système réactif donné dans l'introduction à ce chapitre, qui a à gérer l'interface avec l'environnement, à décider des actions à enchaîner et des calculs à entreprendre, il serait intéressant d'utiliser un langage synchrone pour s'occuper du noyau réactif du système, c'est-à-dire du séquencement et des synchronisations logiques du système. Or, il existe déjà dans le domaine robotique de nombreux exemples ([11], [9]) où de tels noyaux réactifs ont été employés, et ont montré que le formalisme synchrone permettait de modéliser aussi les phénomènes présentant de l'asynchronisme. Ces travaux ont été effectués autour du langage synchrone ESTEREL. Par conséquent, ESTEREL nous paraît un bon candidat pour spécifier et implémenter le type de système réactif dont nous avons besoin pour nos applications.


next up previous contents
Next: Le Langage Synchrone ESTEREL : Up: L'approche Synchrone et le Previous: L'approche Synchrone et le

Soraya Arias
Mon Aug 5 17:38:44 MET DST 1996