| Réf : S8060 v1

Langages réactifs synchrones et asynchrones

Auteur(s) : Olivier ROUX

Date de publication : 10 mars 2001

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Auteur(s)

  • Olivier ROUX : Institut universitaire de France et IRCyN (Institut de recherches en cybernétique de Nantes – UMR CNRS 6597) - École centrale de Nantes

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

1. Synchronisme et asynchronisme

1.1 Notions générales

1.2 Synchronisme

1.3 Asynchronisme

2. Langages réactifs

2.1 Exemples de langages réactifs synchrones

2.2 Exemple de langage réactif asynchrone

2.3 Liens entre synchronisme et asynchronisme

3. Vérifications de programmes réactifs

3.1 Motivations de la vérification et représentations du temps

3.2 Modélisations des programmes et des propriétés à vérifier

3.3 Autres approches et limites

4. Conclusion

La notion de réactivité caractérise les systèmes informatiques dans lesquels, contrairement aux systèmes transformationnels, un programme, tout au long de son exécution, reçoit des données à traiter (sous la forme de signaux en entrée) et élabore et fournit des résultats (sous la forme de signaux de commande émis).

Dans cette classification qui distingue systèmes transformationnels et systèmes réactifs, et qui repose sur le mode d’interactions entre l’environnement physique et le système informatique, G. Berry a ajouté une catégorie intermédiaire des systèmes dits interactifs, dans lesquels le rythme de ces interactions est imposé par le système informatique, donc de façon moins prépondérante et critique que dans les systèmes réactifs où ce sont les dynamiques de l’environnement qui contraignent la temporalité de ces interactions.

Les systèmes réactifs sont donc fréquemment destinés au contrôle automatique des applications dont le fonctionnement présente des fortes contraintes physiques (systèmes embarqués, distribués, parallèles …) et des exigences de fiabilité et de sûreté critiques. L’aspect critique tient au fait qu’une défaillance du système peut avoir des conséquences graves.

Or, ces procédés physiques réels, contrôlés par ces systèmes réactifs, ont des dynamiques propres (phénomènes continus, régis par des lois de comportement qui peuvent être, par exemple, des équations différentielles complexes). Ces caractéristiques analogiques sont difficiles à coupler avec la logique de l’ordinateur. Cet interfaçage est donc souvent réalisé par la matérialisation des manifestations de cet environnement physique au travers de l’apparition d’événements discrets, reçus par le système de contrôle, et qui provoquent sa réaction sous la forme d’ordres de commande, également matérialisés par des événements discrets. Cette dualité continu-discret confère ainsi à certaines applications un caractère hybride marqué qui rend la modélisation assez complexe.

Pour répondre aussi bien que possible aux difficultés – liées à ces particularités – d’exprimer les comportements des processus, un certain nombre de langages – dits réactifs – ont été conçus. Ils sont destinés à faciliter la programmation de telles applications.

Dans cet article, nous nous attacherons à présenter les traits majeurs de ces différentes solutions proposées.

Outre les difficultés que nous venons d’indiquer concernant la prise en compte de l’environnement dans la mise au point des programmes de contrôle, les systèmes réactifs présentent souvent, comme nous l’avons déjà mentionné, des exigences en termes de déterminisme et de sûreté de fonctionnement, de distribution et de parallélisme, ainsi que de maîtrise de la rapidité de la réaction (car ce temps de réaction peut éventuellement être contraint sous la forme d’échéances impératives à respecter). Or ces notions, qui constituent quelques-unes des préoccupations parmi les plus importantes des programmeurs d’applications temps réel, sont précisément des concepts fondamentaux qui forment le socle sémantique des langages réactifs :

  • le déterminisme ;

  • la fiabilité ;

  • la concurrence ;

  • renforts de faisceaux de fibres optiques ;

  • la temporalité

  • Mais, d’un point de vue plus spécifique, l’objectif majeur étant l’expression précise des comportements de processus informatiques plongés dans des environnements complexes, un élément essentiel dans la sémantique des langages réactifs qui traitent ces problèmes réside dans la façon dont sont prises en compte les occurrences des événements qui proviennent de l’environnement. En effet, un traitement consécutif à une de ces occurrences peut être immédiat ou différé (par exemple, parce qu’aucun processeur n’est disponible pour exécuter cette nouvelle tâche, alors que les actions en cours sont plus prioritaires). Par conséquent, la possibilité d’exprimer ainsi intentionnellement des retards de traitement, par contraste par rapport à des actions réflexes, peut imposer l’existence de mécanismes plus élaborés, permettant, par exemple, des mémorisations des événements. D’autre part, un point aussi important est que le déclenchement des actions est déterminé de façon bien précise en fonction de ces occurrences d’événements. Or, cette fonction peut être complexe pour tenir compte des imbrications des événements qui se sont produits, et la puissance sémantique des langages est liée à l’expressivité des opérations qui permettent de construire ces réactions aux événements.

    Nous montrerons dans cet article que toutes les considérations mentionnées précédemment comme devant être aisément prises en compte dans les programmations visées dans le domaine de la réactivité sont fondamentales pour l’émergence des deux familles de langages réactifs que sont les langages synchrones et les langages asynchrones.

    Nous illustrerons quelques caractéristiques liées à la réactivité et au temps réel, d’abord par des exemples de petits programmes exprimés dans un langage synchrone (Esterel), et nous montrerons aussi comment deux autres langages synchrones (Lustre et Signal) permettent également, mais dans un style un peu différent, de programmer de telles applications à caractère synchrone. Puis, nous mettrons l’accent sur d’autres aspects (complémentaires, comme nous l’aurons montré) de la réactivité, liés plus particulièrement à des aspects asynchrones (conséquences de durées variables des tâches et de mémorisations des événements) ; nous donnerons également des exemples de programmation dans un tel langage asynchrone (Electre) pour illustrer ces notions.

    Aussi, à des fins de comparaison, donnerons-nous souvent une version en Grafcet de ces mêmes exemples. Nous mentionnerons finalement, pour cette partie, quelques expériences de recherche en cours sur la conjonction des approches synchrone et asynchrone.

    Enfin, nous montrerons succinctement comment la vérification des programmes réactifs est nécessairement intrinsèquement associée à la programmation et comment les cadres formels dans lesquels ces langages ont été conçus sont particulièrement bien adaptés pour ces preuves.

    En conclusion nous récapitulerons les éléments positifs essentiels de ces approches des langages réactifs, et nous indiquerons d’autres travaux effectués dans ce domaine, en citant quelques-unes des applications industrielles.

    Cet article est réservé aux abonnés.
    Il vous reste 95% à découvrir.

    Pour explorer cet article
    Téléchargez l'extrait gratuit

    Vous êtes déjà abonné ?Connectez-vous !


    L'expertise technique et scientifique de référence

    La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
    + de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
    De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

    DOI (Digital Object Identifier)

    https://doi.org/10.51257/a-v1-s8060


    Cet article fait partie de l’offre

    Automatique et ingénierie système

    (141 articles en ce moment)

    Cette offre vous donne accès à :

    Une base complète d’articles

    Actualisée et enrichie d’articles validés par nos comités scientifiques

    Des services

    Un ensemble d'outils exclusifs en complément des ressources

    Un Parcours Pratique

    Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

    Doc & Quiz

    Des articles interactifs avec des quiz, pour une lecture constructive

    ABONNEZ-VOUS

    Lecture en cours
    Présentation

    Cet article est réservé aux abonnés.
    Il vous reste 92% à découvrir.

    Pour explorer cet article
    Téléchargez l'extrait gratuit

    Vous êtes déjà abonné ?Connectez-vous !


    L'expertise technique et scientifique de référence

    La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
    + de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
    De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

    Cet article fait partie de l’offre

    Automatique et ingénierie système

    (141 articles en ce moment)

    Cette offre vous donne accès à :

    Une base complète d’articles

    Actualisée et enrichie d’articles validés par nos comités scientifiques

    Des services

    Un ensemble d'outils exclusifs en complément des ressources

    Un Parcours Pratique

    Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

    Doc & Quiz

    Des articles interactifs avec des quiz, pour une lecture constructive

    ABONNEZ-VOUS

    Sommaire
    Sommaire

    Cet article est réservé aux abonnés.
    Il vous reste 95% à découvrir.

    Pour explorer cet article
    Téléchargez l'extrait gratuit

    Vous êtes déjà abonné ?Connectez-vous !


    L'expertise technique et scientifique de référence

    La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
    + de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
    De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

    Cet article fait partie de l’offre

    Automatique et ingénierie système

    (141 articles en ce moment)

    Cette offre vous donne accès à :

    Une base complète d’articles

    Actualisée et enrichie d’articles validés par nos comités scientifiques

    Des services

    Un ensemble d'outils exclusifs en complément des ressources

    Un Parcours Pratique

    Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

    Doc & Quiz

    Des articles interactifs avec des quiz, pour une lecture constructive

    ABONNEZ-VOUS