• Aucun résultat trouvé

La sémantique opérationnelle du langage

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

lesvariables

a

,

a0

,

a1

et

a2

appartiennentimpli itementà

Aexp

;

lesvariables

c

,

c0

,

c1

et

c2

appartiennentimpli itementà

Cexp

;

lesvariables

p

,

p0

,

p1

et

p2

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 tion

d(id)

qui renvoie lavaleur

v

asso iée àl'identiant

id

dans le di - tionnaire

d

;

lafon tion

d[id 7→ v]

:

d[id 7→ v](i) =



d(i)

si

i 6= id

v

si

i = id

(5.1) quirenvoie

v

si

id

et

i

oïn identet

d(i)

sinon.Notonsque ettefon tiondénit unnouveaudi tionnaireidentiqueaupré édentmaisdanslequel

id

estasso iéà

v

.Cetteopérationpeutêtrevue ommel'ajoutd'uneentréedansledi tionnaire

d

.

5.3.7.4 A ès aux fon tionsde l'environnement

L'environnement omporteunefon tion

Φ

quiasso ieàunidenti ateurdefon - tion

id

unepaire

(c, a)

c

représentele omportementdelafon tion

id

et

a

lavaleur deretourdelafon tion

id

.

Φ

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)

si

i 6= id

(cexpr, aexpr)

si

i = id

(5.2) Notons queleslistessontdéniesàl'aidedesopérateurssuivants:

l'opérateur

v :: l

ajouteentêtedelaliste

l

l'élément

v

;

l'opérateur

head(l)

a èdeàl'élémententêtedelaliste

l

;

l'opérateur

tail(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'expression

e

s'évaluedefaçonarithmétique

→a

enlavaleur

v

.

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 ateur

z

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'expressiondelalistedesentiersentre

z1

et

z2

.Notonsquenousrestrei- gnonsl'opérateurrangeàn'utiliser quedesbornesentières.

5.3.7.8 Les opérateurs arithmétiques

Les opérateurs

+

,

,

,

/

s'appliquentaux entiers

Zexp

et aux réels

Rexp

, 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

∆, Φ ⊢

append

a0a1→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 tionnaire

d

que doitfournirl'expression

a0

:

∆, Φ ⊢ 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 de

a0

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'expression

c

.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'expression

a

s'évaluedans l'environnementen

v

.

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)

c0

et

c1

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 hemin

p

représente l'endroit oùdoit être enregistréelavaleur.Parexemple,le hemin

a

.

b

.

c

indiquelavaleur

c

dudi tionnaire

b

,quiestlui-mêmedansledi tionnaire

a

del'environnementlo al.Modierlavaleur

v

de

c

revientàmodiertouslesdi tionnaires

a

,

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∆

∆, Φ ⊢

if

a0

then

c1

else

c2

end

→c∆′

(5.27)

∆, Φ ⊢ a0→a

true

∆, Φ ⊢ c1→c∆

∆, Φ ⊢

if

a0

then

c1

else

c2

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 h

recp

in

rec

l

do

recc

done

→c

∆, Φ ⊢

forea h

p

in

a

do

c

done

→c∆′

(5.29)

Lase onderègledénitlefaitque:faireunforea hsurlaliste

l

revientàae ter lapremièrevaleurdelalisteà

p

puisàévaluer

c

et ennàévaluerunforea hsurle restedelaliste.

∆, Φ ⊢ p

=

rec

head(l)

;

c

;forea h

rec

p

in

rec

rest(l)

do

rec

c

done

→c∆

∆, Φ ⊢

forea h

rec

p

in

recl

do

rec

c

done

→c∆′

(5.30)

Dans ettedernièrerègle,[℄représentelalistevidequisignielanduforea h.

∆, Φ ⊢

forea h

rec

p

in

rec

[ ℄do

recc

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

Cexp

ou

Aexp

.Seuleladernièredé laration d'unefon tionest ee tive.

Φ[id 7→ (c, a)] ⊢ decl →f

Φ′

Φ ⊢

fun

id

exe

c

return

a decl →f

Φ′