5.3 Véri ation de la validité des ompositions (la fon tion F v )
5.3.7 La sémantique opérationnelle du langage
Maintenantquenousavonsunedes riptioninformelledu omportementdesser- vi esWebet unaperçudes omportementsdesopérateursdulangage,nousformali- sonsdans ettese tion es omportementsàl'aided'unesémantiqueopérationnelle.
Commenous l'avonsdéjàvu dansle hapitredédiéàlaformalisationdela om- position de servi esWeb, établir notre sémantique opérationnelle va onsister tout d'abordàdénirl'environnementsurlequel ettesémantiquetravaille,ensuiteàdé- nirlesrèglesopérationnellesdu omportementdesopérateursdulangage,en ommen- çantparlesopérateursmanipulantl'environnementetenterminantsurlesopérateurs liésau ontrledudéroulementduprogramme.
5.3.7.1 Notationpour la suitede ettese tion
•
lesvariablesa
,a0
,a1
eta2
appartiennentimpli itementàAexp
;•
lesvariablesc
,c0
,c1
etc2
appartiennentimpli itementàCexp
;•
lesvariablesp
,p0
,p1
etp2
appartiennentimpli itementàPexp
.5.3.7.2 L'environnementd'exé ution des servi esWeb
L'environnement orrespondàl'environnementd'exé utiondela omposition.Un ordinateur peut être vu ommeune ma hine à états qui, après haque instru tion, hanged'état.Dansmonlangage,l'environnementestreprésentéparunepaire
(∆, Φ)
, où∆
est un di tionnaire représentant les données de l'état ourant etΦ
est une fon tiondonnanta ès àladénitiondesfon tions.∆
appartientàDexp
.5.3.7.3 A ès aux donnéesde l'environnement
Poura éderauxdonnéesde l'environnement,ondisposedesdeuxfon tionssui- vantes:
•
la fon tiond(id)
qui renvoie lavaleurv
asso iée àl'identiantid
dans le di - tionnaired
;•
lafon tiond[id 7→ v]
:d[id 7→ v](i) =
d(i)
sii 6= id
v
sii = id
(5.1) quirenvoiev
siid
eti
oïn identetd(i)
sinon.Notonsque ettefon tiondénit unnouveaudi tionnaireidentiqueaupré édentmaisdanslequelid
estasso iéàv
.Cetteopérationpeutêtrevue ommel'ajoutd'uneentréedansledi tionnaired
.5.3.7.4 A ès aux fon tionsde l'environnement
L'environnement omporteunefon tion
Φ
quiasso ieàunidenti ateurdefon - tionid
unepaire(c, a)
oùc
représentele omportementdelafon tionid
eta
lavaleur deretourdelafon tionid
.Φ
donnea ès auxdénitions desfon tionsreprésentant:•
lesservi esWebréels;•
lesfon tionsreprésentantdesservi esWebvirtuels;5.3 Véri ationdelavaliditédes ompositions(la fon tion
F v
)Demême quepourlafon tion
∆
,jedénislesopérateurs:• Φ(id)
quifournit lapaire(c, a)
orrespondantàid
dansΦ
;• Φ[id 7→ (c, a)]
.Φ(id)
quireprésentelafon tion:Φ[id 7→ (c, a)](i) =
Φ(i)
sii 6= id
(cexpr, aexpr)
sii = id
(5.2) Notons queleslistessontdéniesàl'aidedesopérateurssuivants:
•
l'opérateurv :: l
ajouteentêtedelalistel
l'élémentv
;•
l'opérateurhead(l)
a èdeàl'élémententêtedelalistel
;•
l'opérateurtail(l)
a èdeaurestedelalisteunefoislepremierélémentenlevé.5.3.7.5 Evaluation d'une expressiondans l'environnement
La règle
∆, Φ ⊢ e →a
v
signie que dans l'environnement∆, Φ
, l'expressione
s'évaluedefaçonarithmétique→a
enlavaleurv
.5.3.7.6 Evaluation des expressionssur lestypes de base
Les expressions
z
,r
,s
,l
,d
permettentde réerlestypesdebase.Ils sontdénis delafaçonsuivante:∆, Φ ⊢ z →a
z
(5.3)∆, Φ ⊢ r →ar
(5.4)∆, Φ ⊢ s →as
(5.5)∆, Φ ⊢ l →al
(5.6)∆, Φ ⊢ d →ad
(5.7)Notonsquepoursimplierladénitiondesopérateursarithmétiques,je onfonds l'expressionàévaluerave savaleurd'évaluation. Ainsidans
∆, Φ ⊢ z →a
z z
'estle mêmeidenti ateurz
quenousretrouvonsdesdeux tésde→a
.5.3.7.7 L'opérateur
range
Uneautrefaçonde réerdeslistesestl'utilisationdel'opérateurrange.Dansmon langage,ilestlimité àla réationdelisted'entiersetsedénitdelafaçonsuivante :
∆0, Φ ⊢ a0→az1
∆0, Φ ⊢ a1→az2
∆0, Φ ⊢
range(a0, a1
)→a
l
(5.8) où
l
estl'expressiondelalistedesentiersentrez1
etz2
.Notonsquenousrestrei- gnonsl'opérateurrangeàn'utiliser quedesbornesentières.5.3.7.8 Les opérateurs arithmétiques
Les opérateurs
+
,−
,∗
,/
s'appliquentaux entiersZexp
et aux réelsRexp
, les dénitions de l'opérateur+
pour les entiers et les réels sont données par les deux règles i-dessous:∆, Φ ⊢ a0→az0
z0∈ Zexp ∆, Φ ⊢ a1→az1
z1∈ Zexp
∆, Φ ⊢ a0+ a1→az0+ z1
(5.9)∆, Φ ⊢ a0→a
r0
r0∈ Rexp ∆, Φ ⊢ a1→a
r1
r1∈ Rexp
∆, Φ ⊢ a0+ a1→a
r0+ r1
(5.10) Notons quel'opérateur+
situéàdroite des→a
est dansla premièrerèglel'opé- rateur+
desentierset danslase onde,l'opérateur+
desréels.Surlemêmemodèle,nouspouvonsexprimerlesopérateurs
−
,∗
et/
:∆, Φ ⊢ a0→az0
z0∈ Zexp ∆, Φ ⊢ a1→az1
z1∈ Zexp
∆, Φ ⊢ a0− a1→az0− z1
(5.11)∆, Φ ⊢ a0→a
r0
r0∈ Rexp ∆, Φ ⊢ a1→a
r1
r1∈ Rexp
∆, Φ ⊢ a0− a1→a
r0− r1
(5.12)∆, Φ ⊢ a0→az0
z0∈ Zexp ∆, Φ ⊢ a1→az1
z1∈ Zexp
∆, Φ ⊢ a0∗ a1→az0∗ z1
(5.13)∆, Φ ⊢ a0→a
r0
r0∈ Rexp ∆, Φ ⊢ a1→a
r1
r1∈ Rexp
∆, Φ ⊢ a0∗ a1→a
r0∗ r1
(5.14)∆, Φ ⊢ a0→az0
z0∈ Zexp ∆, Φ ⊢ a1→az1
z1∈ Zexp
∆, Φ ⊢ a0/a1→az0/z1
(5.15)∆, Φ ⊢ a0→a
r0
r0∈ Rexp ∆, Φ ⊢ a1→a
r1
r1∈ Rexp
∆, Φ ⊢ a0/a1→a
r0/r1
(5.16)5.3.7.9 L'opérateur de manipulation d'une liste
L'opérateurappendpermetderajouterunevaleuràland'uneliste,ets'exprime delafaçonsuivante:
∆, Φ ⊢ a1→av1∆, Φ ⊢ a0→a
l0
∆, Φ ⊢
appenda0a1→a
v1:: l0
(5.17)
5.3.7.10 L'a ès auxdonnées d'un di tionnaire
L'a èsauxdonnéesd'undi tionnaire estexpriméparles3règlessuivantes. Lapremièrerègleexprimel'opérateurqui renvoietoutl'environnement:
∆, Φ ⊢
this→a∆
(5.18) La se onderègle exprimel'opérateurqui s'évalueen lavaleurasso iée à
id
dans l'environnement:∆, Φ ⊢ id →a∆(id)
(5.19) Enn, la dernièrerègle fournit lavaleurasso iéeà
id
dans le di tionnaired
que doitfournirl'expressiona0
:∆, Φ ⊢ a0→a
d
∆, Φ ⊢ a0
.id →ad(id)
5.3 Véri ationdelavaliditédes ompositions(la fon tion
F v
)En ombinant estroisopérateursnouspouvonsainsia éderàtouteslesdonnées de haquedi tionnaire,parexemplel'expression: this
.a.b
renvoie lavaleurasso iée àb
dansledi tionnairedel'environnementlo alasso iéàa
.5.3.7.11 L'opérateur d'appelde fon tion
L'opérateurd'appeldefon tionest onsidéré ommeuneopérationarithmétique, arilnemodiepasl'environnementlo al.
Commejel'aidé ritdanslase tion5.3.4,ilexistedeux atégoriesdefon tions:les fon tionsdebaseset lesautres.Lelangagenediéren iepas esdeux atégories.Les fon tionsdebasesontdesfon tions lassiquesquisuiventune onventionparti ulière, unexempledanslase tion5.7ennde e hapitrel'illustre.
Par ailleurs,l'appeldesfon tionsest dénipar:
∆, Φ ⊢ a0→a∆′
Φ(id) = (c, a1)
∆′, Φ[id 7→ (
skip,
this)] ⊢ c →c∆
′′
∆′′, Φ[id 7→ (
skip,
this)] ⊢ a1→av
∆, Φ ⊢ id
(a0
)→av
(5.21) où:• ∆′
est l'environnement spé ique danslequel travaillentles fon tions.Cet en- vironnement est indépendant de l'environnement d'exé ution. On exprime de ettemanièrequeles omportementsdesservi esWebn'onta èsqu'auxdon- néesfourniesenentréeduservi eWeb;
• a0
est l'expression arithmétique hargée de fournir les données à la fon tion qui va être exé utée. Généralement, le résultat de l'évaluation dea0
est un di tionnaire;• c
est l'expression de la fon tion. Cette expression est évaluée à l'aide de la notation→c
dénie plusloin;• a1
est l'expressionarithmétiquedelavaleurderetourdelafon tionàévaluer. Cetteexpressionestévaluéeaprèsl'évaluationdel'expressionc
.L'évaluationde es expressionsest réaliséeenayantaupréalablesuppriméde l'environnement lafon tionen oursd'appel,and'éviterlesappelsré ursifs.5.3.7.12 Lesopérateurs de ontrle
La manipulationde l'environnements'ee tue parl'intermédiairede l'évaluation desopérateursde ontrlequi permettentd'exprimerles ompositions.
∆, Φ ⊢ a →cv
signiequedansl'environnement∆, Φ
,l'expressiona
s'évaluedans l'environnementenv
.L'opérateurskip Lepremieropérateurde ontrleestskip.Cetopérateurnefait rien, 'est-à-direqu'ilne hangepasl'environnement.Ilestdénidelafaçonsuivante:
∆, Φ ⊢
skip→c
∆
(5.22) Cet opérateur est utile pour la dénition des opérateurs de test en permettant d'exprimer que les expressions des bran hes then ou else sont vides, 'est-à-dire n'ontpasde omportement.
L'opérateur de séquen e ; C'estl'undesopérateurslesplusutilisés.Il onsiste àexé uter l'uneaprès l'autre lesdeux expressions, la premièretransformantl'envi- ronnementdanslequelseraêtreexé utéelase onde.Ilest dénipar:
∆, Φ ⊢ c0→c
∆′
∆′, Φ ⊢ c1→c∆′′
∆, Φ ⊢ c0
;c1→c∆′′
(5.23)
où
c0
etc1
sontdesexpressionsde ompositiondulangage.L'opérateur d'ae tation Cet opérateur permet d'asso ier un identiantà une valeur.L'ae tationmodieré ursivementlesdi tionnairesdel'environnementdela manièresuivante :
•
d'abordellemodieledi tionnaireleplusprofond dansl'arbores en e;•
puisellemodie ré ursivementlesdi tionnairesdeniveauimmédiatementinfé- rieurjusqu'àatteindreledi tionnaire ra ine.Cetopérateursedé omposedanslestroisrèglesré ursivesexpli itées i-dessous.
La première règle 5.24 exprime le fait que l'on modie le di tionnaire de niveau inférieurave ledi tionnairedeniveauimmédiatementsupérieur,
∆
étantledi tion- nairedeniveauinférieuret∆(id)
ledi tionnairedeniveauimmédiatementsupérieur.∆(id)
est modié pour donner∆
′
, puis e
∆(id)
modié est réae té àid
. Notons que∆
′
estplusloindelara ineque
∆
et dépend de∆(id)
.∆(id), Φ ⊢ p
=rec
v1→c∆
′
∆, Φ ⊢ id
.p
=rec
v1→ ∆[id 7→ ∆′]
(5.24)
Lase onderègle5.25exprimelefaitquel'onaatteintledi tionnairelepluséloigné de la ra ine. La valeur fournie par l'expression
aexpr
de la règle suivante est don ajoutéeaudi tionnairequivaêtrepropagé.∆, Φ ⊢ id
=rec
v1→c∆[id 7→ v1]
(5.25)
C'est ave ette dernière règle que débute la ré ursion. Cette règle évalue l'ex- pression
aexpr
puis lan e laré ursion.Le heminp
représente l'endroit oùdoit être enregistréelavaleur.Parexemple,le hemina
.b
.c
indiquelavaleurc
dudi tionnaireb
,quiestlui-mêmedansledi tionnairea
del'environnementlo al.Modierlavaleurv
dec
revientàmodiertouslesdi tionnairesa
,b
ainsiqueledi tionnaire lo al.La formuleest :∆
′
= ∆[a 7→ ∆(a)[b 7→ ∆(a)(b)[c 7→ v]]]
. Une foisl'ae tationa hevée, l'évaluationarithmétiquede
a
.b
.c
seraégaleàv
∆, Φ ⊢ aexpr→a
v1
∆, Φ ⊢ p
=recv1→c
∆
′
∆, Φ ⊢ p
=aexpr
→a∆′
5.3 Véri ationdelavaliditédes ompositions(la fon tion
F v
)L'opérateur de bran hement onditionnel if ... then ... else ... end Cet opérateur al ulelerésultatd'uneexpressionbooléennepourdéterminerquellebran he de ompositionseraexé utée. Ilyadon deux aspossibles:
∆, Φ ⊢ a0→a
false∆, Φ ⊢ c2→c∆
′
∆, Φ ⊢
ifa0
thenc1
elsec2
end→c∆′
(5.27)
∆, Φ ⊢ a0→a
true∆, Φ ⊢ c1→c∆
′
∆, Φ ⊢
ifa0
thenc1
elsec2
end→c∆′
(5.28)
La bou le forea h ... in ... do ... done L'opérateur de bou le utilisé par le langagesedénitendeuxétapes:
1. lapremièreétapeextraitlalistedelabou leforea h, 'estlerledel'opérateur forea h;
2. lasuivante opieet par ourt etteliste, 'estlerledel'opérateurforea h
rec
.Dans ettepremièrerègle,j'initialiseleforea henévaluant
a
pourobtenirlaliste orrespondantequiseraensuitepar ouruegrâ eauxdeuxrèglessuivantes.∆, Φ ⊢ a →al
∆, Φ ⊢
forea hrecp
inrec
l
dorecc
done→c
∆
′
∆, Φ ⊢
forea hp
ina
doc
done→c∆′
(5.29)
Lase onderègledénitlefaitque:faireunforea hsurlaliste
l
revientàae ter lapremièrevaleurdelalisteàp
puisàévaluerc
et ennàévaluerunforea hsurle restedelaliste.∆, Φ ⊢ p
=rec
head(l)
;c
;forea hrec
p
inrec
rest(l)
dorec
c
done→c∆
′
∆, Φ ⊢
forea hrec
p
inrecl
dorec
c
done→c∆′
(5.30)
Dans ettedernièrerègle,[℄représentelalistevidequisignielanduforea h.
∆, Φ ⊢
forea hrec
p
inrec
[ ℄dorecc
done→c∆
(5.31)
L'opérateur de dé laration des servi es Ladé larationdesservi esmodiela fon tion
Φ
de l'environnement. Pour exprimer ette règle, je dénistout d'abordla notationΦ ⊢ decl →f
Φ
′
pourexprimerqueladé laration
decl
dansl'environnementΦ
modie etenvironnementenΦ
′
.
Larègleexprimelandesdé larationsdesfon tions,ouplusgénéralementau une dé larationdefon tion.
Φ ⊢
none→f
Φ
(5.32)
Lase onderègleexprimedeux hoses:
1 le rempla ement oul'ae tation à
id
d'une fon tiondontle orps et lavaleur sontreprésentésparlapaire(c, a)
;2 la séquen e des dé larations qui sont réaliséesàla suite de ladé larationpar l'expression
decl
.Ladé larationdesfon tionsestglobale.Cesfon tionsnepourrontpasêtremodi- éesdurantl'exé utiondesexpressions