• Aucun résultat trouvé

Langage de spécification : EBPA ∗ 0,1

6.3 Application des propriétés spécifiables par les automates d’édition

6.3.1 Langage de spécification : EBPA ∗ 0,1

Dans cette section, nous présentons la syntaxe et la sémantique de l’algèbre de proces- sus EBPA∗0,1 (Extended Basic Process Algebra). Il s’agit d’une extension du langage BPA∗0,1 que nous avons décrit précédemment. Ce langage nous permet également d’uniformiser la spécification des programmes et des propriétés en les représentant par des processus. Nous définissons également la notion d’équivalence entre processus selon les traces d’exécution, dans le contexte particulier des propriétés spécifiables par les automates d’édition.

Syntaxe de EBPA0,1

Soit a une action atomique qui appartient à un ensemble fini d’actions Σ et P, Q deux

processus. La syntaxe de EBPA∗0,1est définie par la grammaire BNF suivante :

P, Q ::= 0 | 1 | a | a+ | a| P + Q | P.Q | PQ

a spécifie l’exécution de l’action a ;

aspécifie la suspension de l’exécution de l’actiona ;

a+ spécifie l’insertion (l’exécution) des actions précédemment suspendues suivies de

l’exécution de l’actiona.

Les autres composantes de la syntaxe de EBPA∗0,1sont identiques à celles présentées dans la syntaxe BPA∗0,1. Nous désignons également parP l’ensemble de tous les processus.

TABLE 6.5 – Sémantique opérationnelle de EBPA∗0,1.

(Ra) 2 a, τ −→ 1, τa (R 1) 2 1 ↓ (Ra+ ) 2 a+, τ −→ 1, ετ.a (R a− ) 2 a, τ −→ 1, τ.aε (Rr↓)(PP ↓Q) ↓ (R.) P ↓(P.Q) ↓Q ↓ (R. l) P, τ σ −→ 1, τQ, τ−→ Qσ′ ′, τ′′ P.Q, τ −→ Qσ.σ′ ′, τ′′ (R . r) P, τ −→ Pσ, τP.Q, τ −→ Pσ.Q, τ(Rl+↓) (P + Q) ↓P ↓ (R+r↓) (P + Q) ↓Q ↓ (Rl+) P, τ σ −→ P, τP + Q, τ −→ Pσ, τ(R + r) Q, τ −→ Qσ, τP + Q, τ −→ Qσ, τ(Rl) P, τ σ −→ P, τPQ, τ −→ Pσ.(PQ), τ(Rr) Q, τ σ −→ Q, τPQ, τ −→ Qσ, τ

Sémantique de EBPA0,1

La sémantique opérationnelle de EBPA∗0,1 est définie par la relation de transition

→∈ (P × Σ∗) × Σ× (P × Σ) décrite dans la table 6.5. Il s’agit d’une extension de la sé-

mantique opérationnelle présentée dans la table6.1. Comme particularité, elle comporte des règles spécifiant l’insertion et la suppression d’actions. Aussi, au lieu d’exécuter des actions atomiques, cette algèbre permet l’exécution de séquences d’actions d’une manière atomique. Cet aspect nous permet de traduire l’insertion de séquences d’actions. De plus, on retrouve la notion d’historique qui est intégrée au niveau des règles. Par exemple, si l’on considère l’exé- cution suivante :P, τ −→ Pσ, τ, cela spécifie le fait qu’un processusP ayant un historique

d’actionsτ , lorsqu’il exécute la séquence d’actions σ, évolue et devient un processus Payant

un historiqueτ. Plus précisément,τ est une séquence d’actions qui désigne l’historique des

actions supprimées maintenu par chaque processus.

Principalement, la gestion de l’historiqueτ est effectuée selon les trois règles suivantes :

1. Lorsque le processus accepte une action a (Règle Ra), le contenu de la séquence τ reste inchangé. Par conséquent, la règleRane modifie jamais l’historique des actions supprimées et l’actiona est émise.

2. Lorsque le processus suspend l’exécution d’une action a (Règle Ra

), le contenu de la séquence τ est mis à jour, en concaténant l’action a à la valeur courante de τ . Par

conséquent, la nouvelle valeur deτ est τ.a. Dans ce cas, aucune action n’est exécutée

par le processus (l’actionε est émise).

3. Lorsque le processus reconnaît une exécution valide (satisfaisant la propriété de sécu- rité) se terminant par l’actiona (Règle Ra+

), le contenu de la séquenceτ est mis à jour,

en lui affectant la séquence vide (ε) comme nouvelle valeur. Dans ce cas, la séquence τ suivie de l’action a est exécutée par le processus d’une manière atomique.

On rappelle que la fonctiono a pour rôle de déterminer si un processus termine immédia-

tement son exécution ou pas. La fonctiono est similaire à la définition donnée dans 6.2sauf qu’elle considère l’ensemble d’actions atomiques{a, a+, a} comme le montre la table 6.6.

Afin de mieux visualiser le mécanisme d’exécution des processus selon la sémantique opérationnelle de EBPA∗0,1, nous présentons dans la table 6.7un exemple illustrant l’évolution du processusabc+jusqu’à sa terminaison. Nous supposons toujours que l’historique initial

d’un processus est vide. D’abord, à partir du processusabc+, on applique la règleR. l pour obtenir les deux processusa et bc+. Ensuite, le processusa exécute (accepte) l’action a selon

TABLE 6.6 – Définition de la fonctiono dans EBPA0,1 o(0) = 0 o(1) = 1 o(a) = 0 o(a+) = 0 o(a) = 0 o(PQ) = o(Q)

o(P.Q) = o(P ) × o(Q) o(P + Q) = Max(o(P ), o(Q))

TABLE6.7 – Exécution du processusa.b.c+dans EBPA0,1. (Ra− ) 2 (Ra+ ) 2 (Ra) 2 (R. l) b, ε ε −→ 1, b c+, b−→ 1, εbc (R. l) a, ε a −→ 1, ε bc+, ε ε.bc −→ 1, ε abc+, ε−→ 1, εa.bc

la règle(Ra) et termine son exécution (il évolue vers le processus 1), en laissant l’historique inchangé. Du processusbc+, on applique encore une fois la règleR.

lpour obtenir les deux processusbetc+. Le processusbsuspend l’actionb en émettant l’action vide ε, termine son

exécution et sauvegarde l’action supprimée (b) dans l’historique, selon la règle (Ra

). Enfin, du processusc+, on applique la règle(Ra+

) ce qui a pour effet de terminer son exécution ; cette règle consiste à insérer la séquencebc d’une manière atomique (il s’agit de l’action b

sauvegardée dans l’historique concaténée à l’actionc qui a déclenché l’insertion) et à vider

Équivalence des traces dans EBPA0,1

Dans l’algèbre EBPA∗0,1, les processus sont capables d’exécuter des séquences d’une ma- nière atomique et de manipuler des historiques d’actions. Par conséquent, nous étendons la définitions de la relation։ pour qu’elle puisse inclure ces nouveaux aspects comme suit :

2 P, τ ։ǫ P, τ P, τ ։σ P, τP, τ−→ Pσ′ ′′, τ′′ P, τ σ.σ ′ ։ P′′, τ′′

Aussi, nous adaptons la définition6.2.1de la relation “Plus restrictif” au langage EBPA∗0,1 comme suit :

Définition 6.3.1 (Plus restrictif,⊑τ12). SoientP et Q deux processus et soient τ1,τ2 deux sé- quences appartenant àΣ∗ qui représentent leurs historiques respectifs. On dit queP ⊑

τ12 Q si pour toute séquence σ ∈ Σtelle que : P, τ

1 σ ։ P, τ′ 1, il existe un processus Q′ et un historiqueτ′ 2tels que : (1) Q, τ2 σ ։Q, τ′ 2, (2) o(P) = 1, (3) o(Q) = 1 .

Dans cette définition, nous avons posé des conditions supplémentaires sur les processus, afin que la comparaison porte sur les séquences réellement exécutées. Cette situation est principalement due au fait que l’algèbre EBPA∗0,1 impose un contexte d’édition d’actions (suppression, insertion). Autrement dit, nous ne pouvons considérer les séquences émises par un processus sans qu’il n’ait terminé son exécution.

Afin de mieux éclairer ce point, considérons l’exemple du processus spécifiant le pro- gramme (abc) et du processus spécifiant la propriété (abc+). En considérant leurs histo-

riques initiaux comme étant vides, nous constatons ce qui suit :

– Le processus spécifiant le programme (abc) est capable d’émettre (exécuter) les pré- fixes suivants :{a, ab, abc}.

– Le processus spécifiant la propriété(abc+) est capable d’émettre uniquement les sé-

quences{a, abc}.

– Le programme devrait satisfaire la propriété puisqu’il génère la séquence abc. Néan-

moins, ce programme engendre une trace (ab) qui n’appartient pas aux traces de la

propriété. Par conséquent, ceci contredit la définition6.2.1.

Cependant, en imposant les conditions(2) et (3) de la définition 6.3.1, seule la séquence

abc est considérée concernant le processus spécifiant le programme. Par conséquent, nous ob-

tenons(abc) ⊑ (abc+). Ainsi, nous pouvons dire que le processus (abc) satisfait la propriété

(abc+).

La notationP ⊑τ,τQ est une abréviation de P, τ ⊑ Q, τ′.

Dans le reste de ce chapitre, la notation P ⊑ Q est utilisée au lieu de P ⊑ε,ε Q (qui signifie que les historiques initiaux des processusP et Q sont vides).

On dit que deux processusP et Q sont équivalents selon les traces et on écrit : P ∼ Q si P ⊑ Q et Q ⊑ P .

Voici quelques exemples de comparaison entre processus : – (abc) ⊑ (abc+) mais ¬((abc+) ⊑ (abc)) .

(a + abc) ∼ (abc+) .

¬((abc+d) ⊑ (abcd+)) puisque abc+d, ε abc։ d, ε mais il n’existe aucun processus

Q ni aucun historique τ tels que abcd+, εabc։Q, τ .

¬((abcd+) ⊑ (abc+d)) puisque (abcd+), ε ։ab cd+, ε mais il n’existe aucun pro-

cessusQ ni aucun historique τ tels que (abc+d), ε։ab Q, τ .