La compilation logicielle dEsterel v5 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 4, 23 avril 2013.

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
Le moteur
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Le vaccin antigrippal disponible en France :
Mon carnet De comportement
Sémantique d'Esterel1 Sémantique dEsterel t, P b t, E t instruction au début de linstant t instruction à la fin de linstant P signaux présents E signaux.
Classe : …………… Nom : …………………………………… Date : ………………..
Les numéros
Rover 14½ tables (24/26 étuis) Tables: 14 Rondes: 13 de 2 étuis Étuis au jeu: 28 Saut après: 7 rondes Paire Rover: 15 N-S (ou E-O) Select movement: 1 Mitchell.
Est Ouest Sud 11 1 Nord 1 Individuel 20 joueurs 15 rondes - 30 étuis (arc-en-ciel) Laval Du Breuil Adstock, Québec I-20-15ACBLScore S0515 RondeNE
Est Ouest Sud 11 1 Nord 1 Laval Du Breuil, Adstock, Québec I-17-17ACBLScore S0417 Allez à 1 Est Allez à 4 Sud Allez à 3 Est Allez à 2 Ouest RndNE
Est Ouest Sud 11 1 Nord 1 RondeNE SO
Est Ouest Sud 11 1 Nord 1 Individuel 15 ou 16 joueurs 15 rondes - 30 étuis Laval Du Breuil Adstock, Québec I-16-15ACBLScore S0415 RndNE
Sud Ouest Est Nord Individuel 36 joueurs
Les Prepositions.
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
Journée détude régionale du 23 mai Lévaluation interne des établissements et services sociaux et médico-sociaux : Où en sommes-nous ? 1 Résultats.
LES CAPTEURS INDUSTRIELS
Chapitre 2 L’intensité du courant électrique
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
Orchestration d’activités Web avec HipHop
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES COHESION CULTURELLE ET EXPANSION DES IDEES SUR LE TERRITOIRE EUROPEEN.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
-17 Anticipations économiques en Europe Septembre 2013 Indicateur > +20 Indicateur 0 a +20 Indicateur 0 a -20 Indicateur < -20 Union européenne total:
CYCLE 3 : Alternatives Faire des choix dans un programme en C 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else.
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
CALENDRIER PLAYBOY 2020 Cliquez pour avancer.
Parallélisme Synchrone
Congé Férié Journée Pédagogique Rencontre avec les athlètes 13hrs-14hrs Hors Glace 14hrs-15hrs 30 Glace Arena Vaudreuil-Dorion 14hrs-15hrs Glace 15hrs-16hrs.
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
Les verbes auxiliaires Avoir ou être ?? Choisissez! Cest un verbe Dr Mrs Vandertrampp? Cest un verbe réfléchi?
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
Ballade au Jardin des Tuileries autour du grand bassin rond.
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
INDUSTRIE sa Tel : 0033(0) Fax : Projet: SKIP CAPSULES – v.1 Client: CARDIVAL HEALTH.
LES NOMBRES PREMIERS ET COMPOSÉS
La Saint-Valentin Par Matt Maxwell.
1 INETOP
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
3ème partie: les filtres
C'est pour bientôt.....
1 INETOP
CHARAL Calendrier 2007 Dit is wat mannen boeit!.
Veuillez trouver ci-joint
Réunion 29/11/20131 Projet L412 Nov Recherche dun ouvrage …. Sur Dieppe.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
CALENDRIER-PLAYBOY 2020.
USAM BRIDGE H O W E L L -CLASSIQUE
9 paires séries de 3 étuis ( n° 1 à 27 )
1 Nestlé – Optifibre Zones administrables via le back-office.
Méthodes de simulation logicielle pour Esterel Dumitru Potop-Butucaru.
Les Chiffres Prêts?
Médiathèque de Chauffailles du 3 au 28 mars 2009.
Tolérance de parallélisme
Esterel de A à Z 4. Traduction d’Esterel en circuits
Transcription de la présentation:

La compilation logicielle dEsterel v5 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 4, 23 avril 2013

23/04/ G. Berry, Collège de France Rappel : Esterel noyau

23/04/ G. Berry, Collège de France Rappel : codes de retour Si deux traps sont levés en même temps, seul le plus extérieur compte trap T in trap U in nothing 0 || pause 1 || exit U 2 || exit T 3 end trap || exit T 2 end trap Code de retour du parallèle max des codes des branches (codage de Gonthier)

23/04/ G. Berry, Collège de France Rappel : sémantique comportementale p E E k p signaux reçus signaux émis code de retour Diffusion : E E 0 : terminaison 1 : pause 2 : sortie dun niveau de trap 3 : sortie de deux niveaux de trap k

23/04/ G. Berry, Collège de France Rappel : les règles problématiques si une seule règle sapplique => déterminisme Mais si les deux sappliquent, problème ! absence présence

23/04/ G. Berry, Collège de France Rappel : cycles de causalité if s then emit s if s else emit s contradiction pour la causalité pas contradictoire, mais deux choix possibles if s then emit s else emit s pas contradictoire, un seul choix possible mais problématique car non constructif ! Hamlet : ToBe ToBe or not ToBe

23/04/ G. Berry, Collège de France Propagation constructive : Must et Cannot emit x || if not x then emit y || if not y then emit z Must emit x || if not x then emit y || if not y then emit z car les émetteurs de y ont disparu Cannot emit x || if not x then emit y || if not y then emit z emit x || if not x then emit y || if not y then emit z Must

23/04/ G. Berry, Collège de France Règles constructives pour p \ s absence présence Déterministe car

23/04/ G. Berry, Collège de France Acceptation des bons cycles X Y xor Y X grâce au if if I then if X then emit Y else if Y then emit X end if X then emit Y; pause ; if Y then emit X X Y xor Y X grâce au pause Comme pour lanalyse constructive des circuits cycliques, cf. cours 1 et séminaire Ledinot

23/04/ G. Berry, Collège de France La sémantique constructive : Must Ce que doit faire une instruction dans un environnement donné signaux devant être émis code devant être retourné

23/04/ G. Berry, Collège de France La sémantique constructive : Can signaux pouvant être émis codes pouvant être retournés Ce que peut faire une instruction dans un environnement donné

23/04/ G. Berry, Collège de France

23/04/201313G. Berry, Collège de France

23/04/ G. Berry, Collège de France

23/04/ G. Berry, Collège de France

23/04/201316G. Berry, Collège de France

23/04/ G. Berry, Collège de France Réduction comportementale nothing; if x then pause else emit y end ; emit z pause; if x then nothing else emit y en ; emit z pause; if x then nothing else emit y en ; nothing pause; if x then pause else emit y end ; emit z, 1 {x}{x} {z}, 1

{x}{x}, 1 23/04/ G. Berry, Collège de France Marquer lactivité dans linstruction {z}, 1 pause; if x then pause else emit y end ; emit z pause; pause; if x then pause else emit y end ; emit zpause; pause; if x then pause else emit y end ; emit zpause; boot pause;, 1

23/04/ G. Berry, Collège de France Instructions actives

23/04/ G. Berry, Collège de France Expansion des instructions actives

23/04/ G. Berry, Collège de France Traduction en circuits synchrones Chaque instruction génère un sous-circuit : GO RES SUSP KILL SEL K0 K1 K2... EE' p –E and E: signaux reçus et émis –GO : démarrer p –RES : continuer p depuis son état courant –SUSP: geler p pour le cycle courant –KILL : tuer p en remettant ses registres à 0 –SEL : p vivant, au moins un registre à 1 –Ki : code de retour, 1 fil par code K0 : termine K1 : pause K2, K3,… : sortie de trap englobants abort : RES 0 weak abort : RES 1, KILL 1 Propagation des 1 : Must Propagation des 0 : Cannot

23/04/ G. Berry, Collège de France nothing (0), exit (k 2) et emit s (!s) GO K0 s emit s GOKi pour i 1 (pause) i 0 nothing i k 2 exit T k

23/04/ G. Berry, Collège de France pause (1) KILL RES K0SUSP GOK1 SEL

23/04/ G. Berry, Collège de France present s then p else q end (s?p,q) s E SEL K0 K1 K2 GO RES SUSP KILL E p q

23/04/ G. Berry, Collège de France abort p when s

23/04/ G. Berry, Collège de France suspend p when s RES SUSP s K0 GO KILL SEL K1 K2 E E' p

23/04/ G. Berry, Collège de France Séquence p;q RES SUSP K0 GO KILL SEL K1 K2 E E' p q

23/04/ G. Berry, Collège de France loop p end p* p RES SUSP GO KILL E K0 SEL K1 K2 E' Cycles combinatoires interdits !

23/04/ G. Berry, Collège de France Parallèle || (ou |) K0 SEL K1 K2 E' RES SUSP GO KILL E K3 p q

23/04/ G. Berry, Collège de France Le synchroniseur 2-adique En voyant L (left), R (right) et K comme 2-adiques : K Max(L,R) { max(l, r), l L, r R } K (L L) (R R) (L R) K (L | L) & (R | R) & (L | R) en C unsigned

23/04/ G. Berry, Collège de France Max 2-adique malin L {3,4,5,7}R {1,2,3,6} K Max(L,R) { max(l, r) | l L, r R } {3,4,5,6,7} K { k L R | k max(min(L), min(R) } L L L L L L L L { k N | k min(L) } (L L) & (R R) { k N | k min(L) et k min(R) } (L L) & (R R) { k N | k max(min(L), min(R)) } K (L L) & (R R) & (L R) }

23/04/ G. Berry, Collège de France Circuit pour trap T in p end {p} RES SUSP GO KILL E K0 SEL K1 K2 E' p

23/04/ G. Berry, Collège de France signal s in p end (p\ s) RES SUSP GO KILL E K0 SEL K1 K2 E' peut provoquer des cycles combinatoires, sains pour les programmes constructifs! p

23/04/ G. Berry, Collège de France ABRO : circuit réseau de preuve loop abort { await A || await B }; emit O ; halt when R; end loop optimisé loop { await A || await B }; emit O each R

23/04/ G. Berry, Collège de France Actions sur les données signal X : integer in sustain ?X <= ?I+1 || loop pause; emit ?Y <= ?X+pre(?X) end loop end signal dépendances de données pour propagation constructive et tri topologique

23/04/ G. Berry, Collège de France La réincarnation module Reincarnation : output X ; loop signal S in present S then emit X end ; pause ; emit S end signal end loop end module

23/04/ G. Berry, Collège de France La réincarnation module Reincarnation : output X : loop signal S in present S then emit X end ; pause ; emit S end signal end loop end module

23/04/ G. Berry, Collège de France La réincarnation module Reincarnation : output X : loop signal S in present S then emit X end ; pause ; emit S end signal end loop end module

23/04/201339G. Berry, Collège de France module Vishnu-3 : loop trap T1 in signal S1 in pause; emit S1; exit T1 || loop trap T2 in signal S2 in pause; emit S2; exit T2 || loop present S1 and S2 then emit X end; present S1 and not S2 then emit Y end; present not S1 and not S2 then emit Z end; pause end loop end signal end trap end loop end signal end trap end loop end module

23/04/ G. Berry, Collège de France Kit pour neuf réincarnations

23/04/ G. Berry, Collège de France Séparer les réincarnations par duplication loop signal S in present S then emit X end ; pause ; emit S end signal end loop loop signal S in present S then emit X end ; pause ; emit S end signal ; signal S in present S then emit X end ; pause ; emit S end signal ; end loop Mais dupliquer récursivement des boucles imbriquées explosion exponentielle !

loop signal S in present S then emit X end ; gotopause P1; pause; emit S end signal ; signal S in present S then emit X end ; P1 : pause ; pause; emit S end signal ; end loop 23/04/ G. Berry, Collège de France Dupliquer seulement la surface loop signal S in present S then emit X end ; pause ; emit S end signal end loop

23/04/ G. Berry, Collège de France Pire cas loop trap... loop trap... loop trap Pire cas quadratique + analyse statique (O. Tardieu) sans problème en pratique 3 incarnations, pas 4 !

23/04/ G. Berry, Collège de France Structure du compilateur foo.strlbar.strl foo.icbar.ic all.lc all.sc all1.call2.call4.c interprétation constructive équations de circuits triées automate explicite all5.v model checkers circuit / FPGA langage noyau équations de circuit Traçabilité complète pour debugging

23/04/ G. Berry, Collège de France Code équation de circuits triées E[64] = __WRISTWATCH_R[19]&&!(__WRISTWATCH_R[0]); E[65] = (E[62]&&E[63])||(__WRISTWATCH_R[19]&&E[64]&&!(E[63])); E[66] = E[61]&&E[65]; E[67] = __WRISTWATCH_R[19]||__WRISTWATCH_R[20]; E[68] = __WRISTWATCH_R[21]||__WRISTWATCH_R[22]; E[69] = E[67]||E[68]; E[62] = (E[64]&&E[63])||(__WRISTWATCH_R[20]&&E[62]&&!(E[63])); E[67] = (E[69]&&!(E[67]))||E[65]||E[62]; E[64] = __WRISTWATCH_R[22]&&!(__WRISTWATCH_R[0]); E[58] = (E[64]&&E[60])||(__WRISTWATCH_R[21]&&E[58]&&!(E[60])); E[64] = (E[61]&&!(E[65]))||(__WRISTWATCH_R[22]&&E[64]&&!(E[60])); E[68] = (E[69]&&!(E[68]))||E[58]||E[64]; E[66] = E[66]&&E[67]&&(E[68]||E[66]); if (__WRISTWATCH_R[0]) { __WRISTWATCH_A99; #ifdef TRACE_ACTION fprintf(stderr, "__WRISTWATCH_A99\n"); #endif }

1982, Thèse L. Cosserat : première sémantique, compilation v1 par calcul symbolique des résidus 23/04/ G. Berry, Collège de France Résumé 1985, Thèse Ph. Couronné : Esterel v2 (LeLisp) premier vrai compilateur, lent / explosif 1989, Thèse G. Gonthier + équipe : Esterel v3 (C++), causalité par potentiels, réincarnation, rapide / explosif 1991, virage circuits : Esterel v4 (C++) premier vrai compilateur, rapide / quasi-linéaire, mais causalité restreinte (tri topologique); vérification formelle ~ 1995, causalité constructive générale, Esterel v5 (C++ / TiGeR) : Esterel v4 + interprète constructif + compilation BDD (chère)

Traduction directe en C rapide : –Stephen Edwards : Synopsys Compiler (Synopsys), Columbia Compiler (U. Colombia). –Reprise par Dumitru Potop dans Esterel v5+ et Marc Perreaut dans Esterel v7 23/04/ G. Berry, Collège de France Travaux reliés Automates synchrones hiérarchiques: – Florence Maraninchi (IMAG) : Argos – Charles André (I3S Nice) : SyncCharts Esterel Sudio / Scade 6 Langages réactifs – Frédéric Boussinot et. al. : Reactive C, Junior, SugarCubes, etc. – Marc Pouzet, Louis Mandel (Paris X1, ENS) : Reactive ML Autres langages synchrones – Lustre / SCADE (Verimag), Signal (Rennes) – Quartz / Averest : Klaus Schneider (U. Kaiserslautern) – Timed CCP : Vijay Saraswat (IBM), ECL (Lavagno / Sentovich), etc.

23/04/ G. Berry, Collège de France Références Compiling Esterel Dumitru Potop-Butucaru, Stephen Edwards et Gérard Berry Springer, 2008 The Constructive Semantics of Pure Esterel Gérard Berry, web book...et plus sur www-sop.inria.fr/members/Gerard/Berrywww-sop.inria.fr/members/Gerard/Berry