Langage B, langages synchrones, utilisation de langages informatiques pour la modlisation SED Master - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Langage B, langages synchrones, utilisation de langages informatiques pour la modlisation SED Master

Description:

D velopp conjointement par l' cole des Mines et l'INRIA de Sophia-Antipolis (G rard Berry et son quipe) Permet l'expression simple du parall lisme, de la pr emption ... – PowerPoint PPT presentation

Number of Views:527
Avg rating:3.0/5.0
Slides: 34
Provided by: www710Un
Category:

less

Transcript and Presenter's Notes

Title: Langage B, langages synchrones, utilisation de langages informatiques pour la modlisation SED Master


1
Langage B, langages synchrones, utilisation de
langages informatiques pour la modélisation
SEDMaster Recherche 2 InformatiqueADE3
Modélisation et évaluation de performances des
systèmes à événements discretsProfesseur RENE
SOENEN12/12/2006
Daniel P. Gasparotto daniel.gasparotto_at_insa-lyon.f
r
2
Sommaire
  • Notation Z pour la formalisation
  • (et Notions des outils mathématiques formels)
  • Méthode B de conception (Langage B)
  • Types de systèmes informatiques
  • Langages synchrones (systèmes discrètes réactives
    déterministes)
  • ESTEREL, SyncCharts
  • LUSTRE (SCADE), SIGNAL, etc.
  • Utilisation pour la modélisation SED
  • Autres langages / bibliothèques / modules
  • Analyse

3
Formalismes Mathématiques
  • Logique propositionnel
  • Logique d'attribut (Predicate Logic)
  • Égalité et description définie
  • Ensembles (PowerSets),
  • Produit cartésien, Unions, etc.

4
La Notation Z créée par J.R.
AbrialProgramming Research Group, Oxford
University 60s
EXEMPLE
Schéma Retourner des DVD loués
dvd_disponibles, dvd_loués, dvds
DVDs dvd_disp, dvd_loués
DVDs dvd_retourné? DVDs réponse! MSGS
Partie typage
dvds maxdvds dvd_disponibles dvd_loués
dvd_disponibles dvd_loués
dvds dvd_retourné? dvd_loués dvd_disp
dvd_disponibles dvd_retourné? dvd_loués
dvd_loués \ dvd_retourné? Réponse! OK
Partie prédicative
5
La Notation Z créée par J.R.
AbrialProgramming Research Group, Oxford
University 60s
EXEMPLE
Schéma Retourner des DVD loués
Type subset de lensemble DVDs
Les variables/ensembles
dvd_disponibles, dvd_loués, dvds
DVDs dvd_disp, dvd_loués
DVDs dvd_retourné? DVDs réponse! MSGS
Variables/ensembles détat ()
Les variables/ensembles dentrée (?)
Les variables/ensembles de sortie (!)
Cardinalité de dvds lt maxdvds
dvds maxdvds dvd_disponibles dvd_loués
dvd_disponibles dvd_loués
dvds dvd_retourné? dvd_loués dvd_disp
dvd_disponibles dvd_retourné? dvd_loués
dvd_loués \ dvd_retourné? Réponse! OK
Ensemble de DVDs à retourner doit être un
sous-ensemble de dvd_loués
Nouvelle disponibilité, avec les DVDs retournés
J.R. Abrial a abandonné Z pour proposer la
Méthode B dans les années 80
6
La Méthode B
Le but de B est très pratique. Son ambition est
de fournir aux industriels une série de
techniques pour les aider avec la construction de
leur logiciels.
  • La Méthode B est une méthode formelle de
    développement logiciel.
  • Pourquoi formelle?
  • Car toutes les activités sont validées par des
    preuves formelles.
  • Donc les logiciels conçus avec la méthode B
    fonctionnent conformément à leurs spécifications.
  • Permet de modéliser de façon abstraite avec le
    Langage B le comportement d'un programme et puis,
    par raffinements successifs, d'aboutir à un
    modèle concret.
  • Modèle concret finale transcodable en langage C,
    Ada, etc!

Comparé à Z, B a un niveau légèrement plus bas et
plus concentré sur le raffinement de code plutôt
que seulement sur les spécifications formelles.
Par conséquent, cest plus facile de coder des
spécifications correctement écrites en B que en
Z. (Voir des outils AtelierB ou BToolkit)
7
Spécification et développementavec la Méthode en
B
  • Un composant logiciel une machine abstraite
    (muni de mémoire)
  • on doit pouvoir comprendre ce que fait le
    composant
  • on doit argumenter sur sa cohérence, sur sa
    conformité au cahier des charges

8
Méthode B
LE MECANISME DE BASE UNE MACHINE ABSTRAITE
Le nom de la machine est réservation. On lui
passe en paramètre la variable max_siège
siège est une VARIABLE (caché à lopérateur). On
va apprendre dans la rubrique INVARIANT quel est
son type.
Les variables sont munis dun INVARIANT. (il
exprime les exigences de fonctionnement de la
machine). Ex siège est un élément de l'ensemble
qui va de 0 à max_siège
INITIALISATION des variables de la machine.
siège devient égal à max_siège, établit que
siège 0..max_siège (restriction dans
lInvariant)
Pré-condition d'emploi dune opération (si cest
faux, lopération ne se réalise).
Il faut prouver que la précondition est
satisfaite pour utiliser lopération
  • Une machine abstraite est cohérente
  • Son invariant est vrai après linitialisation .
  • Les opérations, si elles sont correctement
    utilisées, préservent linvariant
  • (Donc, ce qui est important doit être dans
    linvariant)

9
Lidée de la Preuve de Cohérence
Il faut prouver que la précondition est
satisfaite pour utiliser lopération
Un appel légitime (Q) sur un état correct
(I) Rend un état correct!
siège devient égal à max_siège, établit que
siège 0..max_siège (restriction dans
lInvariant)
Preuve formelles à la volonté...
Substitutions généralisés, guardés, vide, choix
bournées, non bournées
10
Spécification et développementavec la Méthode en
B
Ensuite
  • Une machine abstraite peut être raffinée en une
    autre machine
  • on doit pouvoir passer graduellement du quoi au
    comment
  • on doit pouvoir être certain de la pertinence de
    la transformation
  • Une machine abstraite peut être implémentée par
    une autre machine
  • On doit pouvoir obtenir un code exécutable
    équivalent
  • Tout action du programmeur saccompagne dune
    obligation de preuve

11
La Méthode B
  • La Méthode B a des outils commerciaux robustes
    pour la génération de spécification, de
    conception, de preuve et de code.
  • Exemple LAtelierB
  • Un analyseur syntaxique,
  • Un contrôleur de type,
  • Un générateur d'obligations de preuve,
  • Un démonstrateur automatique,
  • Un démonstrateur interactif,
  • Un traducteur vers différents langages de
    programmation,
  • Un gestionnaire de bibliothèque de machines
    abstraites et du code associé,
  • Un outil de reprise automatique des traitements
    en cas de modifications.
  • Utilisations industrielles exemplaires 
  • 1998 - Mise en service par la RATP de la ligne de
    métro 14 (METEOR). Le logiciel critique embarqué
    a été modélisé, prouvé et généré à partir de
    spécifications formelles B.
  • 2005 - La RATP décide d'automatiser la ligne 1
    (La défense/Vincennes) et d'utiliser à nouveau la
    méthode B.

12
Langages Synchrones

maintenir dans l'esprit la définition de SED
Les variables d'état changent de façon
instantanée et seulement en temps spécifiques
(les événements) State variables change
instantaneously, only at specified time points
(events)
Dr. Klaus G. Müller, Guru de la simulation
13
Définition Système Réactive
  • On trouve 3 types de systèmes informatiques
  • Transformationnel il calcule loutput en
    utilisant linput et, après, sarrête.
  • Ex compilateurs, calcul numérique, etc.
  • Interactive (asynchrones)  il fournit des
    services basés sur la disponibilité du système.
  • Lutilisateur demande un service, le système
    lui écoute et lorsquil est prêt le système le
    lui livre.
  • Ex  Systèmes dexploitation, Bases de donnés
    et lInternet.
  • Réactive  Interaction continue avec
    l'environnement basé sur la stimulus-réponse.
  • Synchrone, doit garder le pas dicté par
    lenvironnement.
  • Ex  Contrôleurs de processus (d'usine
    nucléaire, systèmes de vol d'avion), processeurs
    de signal, etc.

14
Caractéristiques des Systèmes Réactifs
  • Critique
  • Ils sont fortement critiques, juste comme les
    systèmes qu'ils commandent sont critiques.
  • Réponse immédiate, sécurité, connaissance de
    l'environnement exacte.
  • Cyclique
  • le programme ne se termine pas.
  • Parallélisme
  • Au moins le parallélisme entre le système et son
    environnement doit être pris en considération
    pendant les spécifications.
  • Gérer plusieurs capteur et/ou incidents
    simultanément et ses processus peuvent être
    interrompus ou stoppés.
  • Déterminisme (fonctionnellement et
    temporellement)
  • Un système réactif détermine un ordre des signaux
    de sortie à partir d'un ordre des signaux
    d'entrée d'une manière unique.
  • Cette propriété fait leur conception, analyse, et
    debug beaucoup plus facile.
  • Elle doit être préservée par limplémentation.

15
Langages Synchrones
  • Hypothèse Synchrone Cest comme si tout était
    calculé instantanément et immédiatement
  • Réalité le  comme si  étant géré concrètement
    par le compilateur du langage
  • Compilation en automate
  • Tout programme synchrone est compilable en un
    automate fini, déterministe et séquentiel
  • - Nud état (mémoire, compteur ordinal) du
    programme en situation d'attente de signaux
    externes
  • - Transition réaction du programme sur
    réception de signaux externes
  • L'automate peut être compilé en code exécutable
    séquentiel (C, Ada) ou même synthétisable au
    hardware.
  • Preuve de propriétés Il existe des procédures
    d'analyses automatiques sur les automates
  • (Model Checking)

Signaux/Actions
  • On trouve 2 différents styles
  • Flot de données (data stream), déclaratif
    textuel (LUSTRE, SIGNAL) et graphique (SCADE)
  • inspiré par des blocks-diagrams
  • Impératif séquentiel textuel (ESTEREL) et
    graphique (SyncCharts)
  • inspiré par des systèmes de transitions
    (machines de Moore/Mealy)

16
Langage ESTEREL http//www-sop.inria.fr/meije/es
terel/esterel-eng.html
  • Apparu dans les années 1980, le plus ancien
  • Il est consacré à la programmation des SEDs
  • Développé conjointement par lÉcole des Mines et
    lINRIA de Sophia-Antipolis (Gérard
    Berry et son équipe)
  • Permet l'expression simple du parallélisme, de
    la préemption
  • Son code écrit sapparente assez à un code en
    PASCAL
  • Langage impératif, la structure reflète la
    passage de contrôle
  • Communication par diffusion de signal
    (broadcast), approach synchrone
  • Nouveau ESTEREL v7, une version industrielle,
    plusieurs doutils
  • (Esterel Studio - Esterel Technologies)
  • Synthétisable au hardware ou au logiciel
    SystemC, C, VHDL, Verilog, entre d'autres

17
Langage ESTEREL http//www-sop.inria.fr/meije/es
terel/esterel-eng.html
Programme Esterel Automate hiérarchique et
parallèle qui attend des signaux, réagit à un
stimulus composé de signaux en changeant d'état
et en produisant de nouveaux signaux
Hypothèse temps de réaction nul !
UN EXEMPLE CLASSIQUE ABRO
await A await B emit O
await A await B
A?
B?
A?
B?
A? B?
A? B? O!
A?
B?
A? O!
B? O!
18
Langage ESTEREL http//www-sop.inria.fr/meije/es
terel/esterel-eng.html
Programme Esterel Automate hiérarchique et
parallèle qui attend des signaux, réagit à un
stimulus composé de signaux en changeant d'état
et en produisant de nouveaux signaux
Hypothèse temps de réaction nul !
FSM (Finite State Machice) du module ABRO
PROMPT (TRACE) gt Output gt A Output gt
B Output O gt R Output gt A B Output O gt
Output gt A B R Output
UN EXEMPLE CLASSIQUE ABRO
PROGRAMME ESTEREL
Si et quand le dernier des 2 await
terminent, passe immediatement le contrôle à la
prochaine ligne
Sans R, Alors, sans O
19
Modélisation Graphique avec SyncCharts
  • Syncharts est un formalisme graphique dédié au
    modelage de systèmes réactifs.
  • Beaucoup de dispositifs sont hérités de
    StateCharts (D. Harel)
  • N'importe quel SyncChart peut être
    automatiquement traduit en programme d'ESTEREL,
    de sorte que l'utilisateur puisse tirer profit de
    l'environnement du logiciel développé pour la
    programmation synchrone.

20
Langage LUSTRE
  • Origine VERIMAG (Grenoble), 1984
  • Notion de base traitement sur des flots de
    données avec synchronisme
  • Cest à dire quil définie quelles sont les
    valeurs de sorties en fonction des valeurs
    entrées à à chaque cycle dactivation.
  • Approche déclaratif, déterminisme
  • Cest à dire quun programme Lustre,
    contrairement à un programme C, consiste en un
    ensemble de déclarations définissant les
    relations entre flots dentrées et flots de
    sorties (en dautres termes des équations
    mathématiques).
  • Distribution commerciale SCADE - Esterel
    Technologies, utilisé par Airbus eh Scheider
    (Centrales Nucléaires)

LUSTRE (Textuel, Académique )
Node asserv (aobs real) returns (Ccmd
real) var Cobs, Cgain real let Ccmd (0 ?
pre(Ccmd)) Cgain Cgain K ((0 ?
pre(Ccmd)) - Cobs Cobs Conv_angle_courant(ao
bs) tel.
SCADE (Graphique, Commerciale)
21
Langage LUSTRE un exemple simple
  • Un système programmé en LUSTRE est un réseau de
    composants travaillant sur des flots de données.
    On appelle des composants nuds
  • Exemple
  • Z X or Y
  • U if Z then V else W
  • O a.U B. pre(U) c.pre(pre(U))

Structure dun programme LUSTRE déclaration de
types et de fonctions externes node nom
(déclaration des flots d'entrée) returns
(déclaration des flots de sortie) var
déclaration des flots locaux let assertions s
ystème d'équations définissant une et une seule
fois les flots locaux (internes)
et de sortie en fonction d'eux mêmes et des
flots d'entrée tel autres nuds
Pour voir comment marche la vérification formelle
en LUSTRE http//www.nilgeisweiller.com/research/
teachings/CLDESS.pdf La vérification formelle
des programmes synchrones en général http//www-v
erimag.imag.fr/raymond/m2p/verif.pdf
22
Langage SIGNAL http//www.irisa.fr/
(Similaire à LUSTRE)
  • Conçu par lINRIA et lIRISA de Rennes avec la
    collaboration du CNET
  • SIGNAL, est aussi basé sur flots de données
    synchronisés. Un processus ensemble déquations
    sur les flots de données, en décrivant data et
    contrôle.
  • Différent de LUSTRE, dans SIGNAL il n'y a aucune
    horloge globale. Au lieu de cela, la notion de
    l'horloge est locale.
  • Par exemple, les signaux (1.2.3.4) et (1,2,
    BOT, 3, BOT, BOT, 4) peuvent être les mêmes.
    Sans n'importe quelle autre information sur leur
    horloge, ils sont les mêmes.
  • les relations des horloges sont utiles en tant
    que spécifications partielles et comme
    caractéristiques des dispositifs non
    déterministes ou des processus externes.

23
Langage SIGNAL EX VEILLEUR (WATCHDOG)
  • Syntaxiquement, DELAI est un paramètre.
  • Il est considéré comme une constante, et doit
    être
  • connu a la compilation dans le exemple, valeur 5.
  • Le symbole ? introduit les signaux d'entrée,
    avec leur
  • type.
  • Le ! précède la déclaration des signaux de
    sortie.

- Interface du processus
Début du corps du processus, compose d'un
ensemble d'équations définissent des valeurs ou
des contraintes sur les signaux. Ces équations
sont encadrées par les séparateurs (
)
24
Langage SIGNAL EX VEILLEUR (WATCHDOG)
HEURE est un signaux locaux, un compteur servant
a numéroter les TOPs du chronomètre. Il permettra
de connaître l'heure associe a une ALARME. HEURE
et TOP ont la même horloge, ce sont de signaux
synchrones. Symbole Valeur à l'instant
précèdent (), sa valeur a l'instant initial 0
(init) HEURE a l'instant présent est (HEURE a
l'instant précèdent)1. Cette définition ne
donne par elle-même aucune indication sur les
instants de présence de HEURE, et la ligne 8 est
donc bien nécessaire.
25
Langage SIGNAL EX VEILLEUR (WATCHDOG)
Le temps séparant une COMMANDE de sa terminaison
est décompté par un compteur décroissant CPT. Il
est fixe à DELAI à l'arrivée d'une COMMANDE, puis
décroît sur chaque TOP, soit jusqu'a l'arrivée de
TERMINEE, soit jusqu'a 0 si la terminaison
n'arrive pas. L'égalité d'horloges précise les
instants où CPT est présent. C'est l'union ()
des horloges des 3 signaux d'entrée, c'est-à-dire
l'ensemble des instants où au moins l'un d'entre
eux est présent. ZCPT porte la valeur de CPT a
l'instant précédent, nécessaire pour calculer sa
valeur actuelle. On l'initialise a -1, qui va
être la valeur de repos du compteur,
lorsqu'il n'y a pas d'attente de terminaison.
26
Langage SIGNAL EX VEILLEUR (WATCHDOG)
La ligne 12 lui donne la valeur du DELAI
lorsqu'une COMMANDE arrive. L'operateur extrait
du signal COMMANDE son horloge, de type
évent. Si a l'instant consideré, on n'a pas de
COMMANDE, on regarde s'il y a une occurrence du
signal TERMINEE dans ce cas le compteur prend
directement la valeur -1. En l'absence de l'un
ou l'autre signal, le compteur se décrémente de 1
tant qu'il est positif ou nul sinon, il
conserve la valeur -1. when et default sont des
opérateurs polychrones.
?
Le signal ALARME prend la valeur de HEURE si le
compteur arrive a 0. C'est donc que le signal
TERMINEE n'est pas arrivé a temps pour le
positionner directement a -1
27
Langage SIGNAL EX VEILLEUR (WATCHDOG)
Lexécution!
Lentrées
Trace
28
  • (LUSTRE et SIGNAL) ESTEREL
  • Ils sont des langages synchrones qui permettent
    la description du comportement
  • dun système / dune tâche sous la forme dun
    ensemble dactions à réaliser à chaque instant
  • en réponse aux sollicitations de lenvironnement
    et en fonction des réactions passées
  • (LUSTRE et SIGNAL) ? ESTEREL
  • ESTEREL description sous forme procédurale
  • on décrit le  comment  sous forme algorithmique
    avec des points darrêt (les états)
  • le contrôle saute dun point darrêt à un autre
    en fonction des signaux dentrée
  • adapté aux systèmes / tâches pour lesquels la
    notion détat prédomine
  • LUSTRE et SIGNAL description sous forme
    déclarative
  • on décrit le  quoi  sous forme équationnelle
  • chaque équation peut-être interprétée comme un
    processus à flots de données, i.e., activé
  • chaque fois que toutes ses entrées sont
    présentes et définies. Ex un filtre
  • le compilateur se comporte un  solveur  qui
    transforme les équations en algorithme

29
Application des langages informatiques pour la
modélisation SED
Selon la définition de SED Lensemble fini des
variables d'état changent de façon instantanée et
seulement en temps spécifiques (les événements)
L'ensemble de toutes les valeurs variables à
un moment donné s'appelle l'état chacun
variable est mis à jour en calculant une fonction
de transition selon les autres variables
Un certain nombre de langages informatiques (de
programmation parallèle/temps réel, comme
ESTEREL, LUSTRE, SIGNAL,) peuvent aussi être vus
comme des langages de spécification, voire de
validation logique, des SEDs. Cependant, la
notion dévaluation de performance est pour
lessentiel absente de ce type dapproche.
Guy Cohen, INRIA, 1995
30
Langages orientés à processus(parallélisme par
threads)
La programmation de simulation en utilisant des
langues conventionnelles peut souvent être
difficile d'écrire le code, et difficile à
corriger (debug). La simulation est vraiment une
forme de programmation parallèle, avec beaucoup
de différentes activités en marche simultanément,
et la programmation parallèle peut être
provocante.
Le paradigme Activity-Oriented Si par exemple la
période entre arrivées moyenne d'un événement
dans une simulation de file d'attente est de 20
secondes, on peut casser le temps en incréments
de la taille 0.001s. Clairement, ça va être très
lent pour s'exécuter. Le paradigme
Event-Oriented Nous stockons un ensemble
d'événements, et on incrément lhorloge de plus
grandes quantités de temps dans l'arrivée d'un
nouveau événement. Le paradigme
Process-Oriented On a 2 threads, un simulant les
arrivées et l'autre simulant la
consommation. (Des threads implémentés
spécifiquement pour cette application. Ex File
dattente)
31
  • Quelques langages/modules/bibliothèques OO
  • de simulation orientées à processus,
    asynchrones
  • SIMULA (1966) - Inspiration pour un bon
    nombre de nouvelles langages! http//www.cetus-lin
    ks.org/oo_simula.html
  • SIMPROCESS et SIMSCRIPT II.5 (depuis
    60s)http//www.caciasl.com/
  • SimPy (DES Simulation in Python) OO, OpenSource,
    Semblable à CSIM
  • http//simpy.sourceforge.net/
  • CSIM Package
  • http//cxxsim.ncl.ac.uk/summary.html
  • Et pluisieur dautres

(yield)
32
Analyse
  • Au sujet de la Méthode B
  • Dans l'aspiration générale de l'Informatique à
    aller vers plus de déclarativité, la
    programmation par spécifications représente la
    voie de l'avenir.
  • Difficultés parler du quoi, pas du comment
  • B is a debugger J.-R. Abrial (Parole de
    lauteur)
  • Au sujet des Langages Synchrones Limpact dans
    lindustrie
  • Bien sûr, les principales compagnies qui
    développent des logiciels de contrôle automatique
    pour des applications critiques, comme par
    exemple Schneider, Dassault, Aérospatiale,
    Snecma, cadence, le Texas, Thomson ont des
    énormes intérêts pour les langages synchrones
    Tendance pour le Future?
  • LUSTRE développement le logiciel de gestion des
    usines nucléaires et les avions d'Airbus
  • ESTEREL développement de puces DSP pour des
    téléphones portables, DVD players, et pour
    programmer le logiciel de commande de vol des
    avions de Rafale.
  • SIGNAL développement de contrôleurs numériques
    pour des moteurs d'avion.
  • L'avantage principal trouvé par ces compagnies
    est que l'approche synchrone a une sémantique
    mathématique rigoureuse qui permettent aux
    programmeurs de développer des logiciels
    critiques plus rapide et meilleur.

33
  • Dans le rapport on trouve une liste très ample de
    Chercheurs et de Laboratoires
  • Merci pour votre attention.
  • ??

Auteur Daniel P. Gasparotto daniel.gasparotto_at_ins
a-lyon.fr
Write a Comment
User Comments (0)
About PowerShow.com