Next: Méthodologie
Up: Le Langage Synchrone ESTEREL
Previous: Caractéristiques
- Au niveau de la programmation : ESTEREL introduit un style de
programmation spécifique ([7]). Tout
d'abord les programmes écrits en ESTEREL sont très proches
de la spécification des problèmes qu'ils traitent. Ceci
provient de l'approche multiforme du temps, adoptée par la
programmation synchrone, qui en ESTEREL consiste en l'utilisation
de tous les signaux comme définissant leur propre "unité de
temps" pour compter des "délais".
Ensuite, ESTEREL permet une programmation modulaire du fait de la
diffusion synchrone des signaux. En effet, un module ESTEREL qui
émet un signal n'a pas à savoir qui est en attente de ce signal
et inversement. La modularité au niveau programmation
permet d'implémenter des parties du comportement
du système dans des modules différents. Ceci facilite la vérification
globale du programme : de manière séparer on vérifie l'adéquation
entre le comportement du module et sa spécification, puis on démontre
que la coopération de ces modules
implémente bien le comportement global spécifié. - Au niveau de la compilation : le compilateur permet de traduire
un programme ESTEREL en un automate fini. Cette traduction en
un système de transitions étiquetées est élaborée à
partir de la sémantique mathématique d'ESTEREL.
L'automate produit par le compilateur ESTEREL est
déterministe et en général minimal; le parallélisme et les
communications qui apparaissent dans le code source sont compilées
pour produire un code séquentiel. Les échanges de signaux
internes n'apparaissent plus. Les avantages de la compilation en
automate sont l'efficacité d'exécution et la prévisibilité du
temps maximal de l'exécution d'une transition. Cette traduction produit une
procédure dont l'appel provoque une réaction de l'automate. Pour
activer cette procédure on doit écrire un programme principal qui
procède de la façon suivante:
- il construit l'événement courant,
- il active l'automate qui exécute la transition
correspondante,
- il retourne le contrôle au programme appelant.
- Au niveau de la gestion des tâches asynchrones :
le besoin de la gestion par un programme synchrone de tâches qui prennent
un temps physique non négligeable, c'est à dire de tâches qui
mettent plus de temps à s'exécuter que le temps minimal entre deux
occurrences d'événements, a amené l'introduction dans le langage
de la primitive exec. Cette primitive permet de lancer
une tâche externe, et d'attendre sa terminaison mais aussi
elle permet d'envoyer une demande de terminaison à la tâche
asynchrone lors que parvient une demande de terminaison forcée.
- Les outils de vérification et de validation : ils
considèrent la structure interne de l'automate compilé. Ils
permettent des comparaisons avec des spécifications ainsi que des
visualisations globales ou partielles des états et des transitions.
On utilise principalement AUTO et son interface graphique AUTOGRAPH.
Next: Méthodologie
Up: Le Langage Synchrone ESTEREL :
Previous: Caractéristiques
Soraya Arias
Mon Aug 5 17:38:44 MET DST 1996