Sémantique de Junior1 t, E b t’, E t instruction initiale t’ instruction à la fin de la réécriture E environnement initial E environnement à la fin de la réécriture b status de terminaison (TERM, STOP, SUSP) Environnement : ensemble d’événements présents + 2 booléens eoi et move
Sémantique de Junior2 Instructions de base znothing zstop zgenerate Nothing, E TERM Nothing, E Stop, E STOP Nothing, E Generate(S), E TERM Nothing, E [move = vrai]+ S
Sémantique de Junior3 Séquence zLa partie gauche ne termine pas zLa partie gauche termine Seq(t,u), E b u’, E’’ t, E TERM t’, E’ u, E’ b u’, E’’ Seq(t,u), E b Seq(t’,u), E’ t, E b t’, E’ b = STOP ou b = SUSP
Sémantique de Junior4 Await zprésent zabsent zinconnu TERM Nothing, E Await(S), E S dans E STOP Await(S), E eoi = vrai S pas dans E eoi = faux S pas dans E SUSP Await(S), E
Sémantique de Junior5 Présence/absence zprésent zabsent zinconnu b t’, E’ b When(S,t,u), E t, E S dans E STOP u, E eoi = vrai S pas dans E When(S,t,u), E SUSP eoi = faux S pas dans E When(S,t,u), E Réaction à l’absence retardée à l’instant suivant
Sémantique de Junior6 zordre gauche/droite (ou inverse) zune seule branche à exécuter Parallélisme Par SUSP,SUSP (t,u), E C(b1,b2) Par d1,d2 (t’,u’), E’’ t, E b1 t’, E’ u, E’ b2 u’, E’’ Par b1,SUSP (t,u), E C(b1,b2) Par d1,d2 (t,u’), E’ u, E b2 u’, E’ b1 différent de SUSP
Sémantique de Junior7 zinstant terminé zinstruction non terminée zinstruction terminée Instants b t, E b t’, E’ Instant(t), Et’, E’ b différent de SUSP b t, E SUSP t’, E’ Instant(t), E u, E’’ move(E’) = faux b Instant(t’), E’ [eoi = vrai] u, E’’ b t, E SUSP t’, E’ Instant(t), E u, E’’ move(E’) = vrai b Instant(t’), E’ [move = faux] u, E’’
Sémantique de Junior8 zInstant = suite de réécritures zDéterminisme : une seule règle applicable, dépendant de la structure du terme et de l’environnement zToutes les décisions d’absence regroupées en 1 seule étape = fin d’instant Déterminisme t 0, E 0 SUSP t 1, E 1 SUSP t 2, E 2 SUSP... SUSP t n-1, E n-1 b t n, E n b Instant(t 0 ), E 0 t n, E n
Sémantique de Junior9 zt = Par(Seq(Await(S),Generate(T)),Generate(S)) zOn a : zPreuve : Exemple TERM Instant(t), {} Par(Nothing,Nothing),{S,T}[move = vrai] SUSP t, {} Par(Seq(…),Nothing), {S} TERM Par(Nothing,Nothing), {S,T} SUSP t, {} Par(Seq(…),Nothing),{S}[move = vrai] Seq(…),{S} TERM Nothing,{S,T}[move = vrai] Instant(Par(Seq(…),Nothing)),{S} TERM Par(Nothing,Nothing),{S,T} }[move = vrai] Par(Seq(…),Nothing),{S} TERM Par(Nothing,Nothing),{S,T}[move = vrai]
Sémantique de Junior10 Plus de pb de causalité zWhen(S, Nothing, Generate(S)) zWhen(S, Generate(S), Nothing) zSeq(When(S,Generate(T),Nothing),Generate(S)) SUSP When(S,...), E When(S,...), E [eoi=vrai] STOP Generate(S), E [eoi=vrai] SUSP Seq(...,...), E Seq(...,...), E [eoi=vrai] STOP Seq(Nothing,Generate(S)), E [eoi=vrai] SUSP When(S,...), E When(S,...), E [eoi=vrai] STOP Nothing, E [eoi=vrai]
Sémantique de Junior11 Conclusion zSémantique opérationnelle micro-step : un instant = une suite de réécritures zDéterminisme zSimple : structurelle zPlus de problèmes de causalité zImplémentation directe des règles possible