Vous êtes sur la page 1sur 62

Introduction la Smantique Oprationnelle

( grands pas)

M.V. Aponte
Anne 2007/2008

Smantique : Quest-ce ?

Smantique : Etude du sens des units linguistiques et de leur


composition.
[Petit Larousse, 1994]
Chane de
caractres

analyse lexicale

analyse syntaxique

Arbre de syntaxe
abstraite (AST)

Associer une signification un programme partir de son


AST.

Smantique : Quest-ce ?

Smantique dun langage : dfinition prcise, non ambigu et


indpendante de limplantation, de la signification des
constructions de ce langage
quelle valeur nous dcidons de donner une expression ?
quel effet nous dcidons dattribuer une instruction ?

Smantique formelle dun langage : exprime dans un


formalisme mathmatique

Syntaxe vs Smantique
Exemple de la logique:
Syntaxe: x N successeur (x) 6 =0
Smantique: tous les nombres naturels ont un successeur

diffrent de zro
Exemple dun langage de programmation:
Syntaxe:

z:=x; x:=y; y:=z;


est form de 3 instructions daffectation spares par des ;
Smantique:

changer les valeurs des variables x et y en donnant z la


dernire valeur de y

Smantique : Pourquoi ?

Garantir certaines proprits vrifies par les programmes ...


augmenter la confiance que lon peut avoir dans les
programmes.

spcification dun compilateur pour un langage donn ...


raisonnement sur les proprits attendues du langage

comme par exemple le dterminisme de lexcution des


instructions

Smantique : Pourquoi ?

raisonnement sur les proprits des programmes:


Equivalence de programmes ... utile pour transformer un

programme en un programme quivalent mais plus efficace


Terminaison de programmes
Non-modification par un programme des valeurs contenues

des adresses sensibles de la mmoire


...

gnration doutils

Smantique : Comment ? (1)

Smantique dynamique : description du comportement (i.e.,


lexcution) de tous les programmes, y compris ceux dont
lexcution provoque une erreur.

Plusieurs manires de formaliser sa description:


smantique oprationnelle
smantique dnotationnelle
smantique axiomatique

Smantique oprationnelle

Le sens dune construction est donn par les calculs induits


lors de son excution par une machine. On sintresse la
manire dont se font les calculs.
Le sens dun programme est donn par la squence dtats
succssifs dune machine qui lexcute.

Programme = Systme de transitions entre tats

Smantique oprationnelle(2)

Exemple:
P1: a:=1; b:=0;
P2: a:=1 /* un commentaire */; b:=0;
P3: b:=0; a:=1;

P1 et P2 sont (du point de vue de la smantique


oprationnelle) smantiquement quivalents.
P1 nest pas quivalent P3.

Remarque: Deux programmes qui ne sont pas


oprationnellement quivalents peuvent aboutir au mme tat
final.

Smantique Dnotationnelle

(vision fonctionnelle)
Le sens dune construction est modlis par un objet
mathmatique qui reprsente leffet de son excution sur ltat
du programme.
programme = fonction mathmatique

On sintresse leffet dun programme et non la manire de


lexcuter.
non dvelopp ici

Smantique Dnotationnelle(2)

Exemple: P1, P2 et P3 comme avant.

P4: a:=1; b:=1;

P1, P2 et P3 sont dnotationnellement quivalents, mais ils ne


sont pas quivalents P4.

Exercice: Quelles quivalences pour ces trois programmes?


P1: z:=x; x:=y; y:=z;
P2: z:=y; y:=x; x:=z;
P3: z:=y; y:=x; x:=z; z:=y;

Smantique Axiomatique

Des proprits spcifiques portant sur leffet dexcuter un


programme sont inseres sous forme dassertions.

Certains aspects de lexcution sont dliberemment ignors:


on sintresse aux proprits de correction partielle par rapport
des prconditions et post-conditions:

si ltat initial dun programme satisfait la prcondition, la


proprit de correction partielle garantit que ltat final satisfait
la postcondition.

Smantique Axiomatique(2)

programme = transformateur de proprits logiques


{P}Prog{Q}
Exemple:
{vrai}a := 1; b := 0;{a 0 b 0}
{vrai}b := 0; a := 1;{a 0 b 0}
{vrai}a := 1; b := 1;{a 0 b 0}

sont tous quivalents.

Smantiques Oprationnelles

Deux sortes de formulations:


Smantique oprationnelle petits pas: description assez

fine de lexcution. Non tudie ici.

Smantique naturelle ou grands pas: cache un peu plus

de dtails de lexcution.

Composantes dune Smantique Oprationnelle

(a) Une syntaxe: ce sont les constructions textuelles


auxquelles on attachera un sens.
(b) Une proprit smantique particulire: que lon veut
caractriser pour la syntaxe.

(c) Un calcul: une description de la manire de calculer la


proprit smantique pour nimporte quelle construction
de la syntaxe.

Composantes: une syntaxe


Les constructions textuelles auxquelles on veut attacher un
sens.
Exemple: le langage des expressions arithmtiques sur les
constantes et variables entires: 3, x+7, ...
eA

:=
|
|

numn | x
eA1 + eA2 | eA1 eA2
eA1 eA2 | eA1 /eA2

numn et x sont des mta-variables pour les numraux et les


variables. Autrement dit, numn reprsente nimporte quel
numral du langage dcrit par la grammaire de numraux,
alors que x reprsente un identificateur quelconque dcrit par
la grammaire des variables.

Composantes: une proprit smantique

Cest la proprit particulire que lon veut caractriser pour la


syntaxe.

Exemples:
Valeur: dune expression arithmtique quelconque.
Type: dune expression arithmtique quelconque.
Nombre daccs mmoire: dune expression arithmtique

quelconque.
etc.

Composantes: un calcul
Une description de la manire de calculer la proprit
smantique pour nimporte quelle construction de la syntaxe.
Exemples:
Valeur:
Valeur dun numral numn : le nombre entier n

correspondant,
Valeur dune variable x: sa valeur en mmoire,
etc..

Type dune constante numn : int, etc...


Nombre daccs mmoire: dune constante n: 0, etc...

Pour que cette description soit complte, on doit prvoir au


moins un cas de calcul de la proprit, pour chaque cas de la
syntaxe.

Systmes dinfrence

Dans une smantique oprationnelle, les calculs des


proprits sont dcrits avec des systmes dinfrence.

Ils servent dduire une proprit particulire pour les


constructions syntaxiques dun langage. Les dductions dans
ces systmes sont appeles jugements. Ils correspondent au
rsultat dduit pour la proprite tudie.

Un jugement
Un jugement a la forme:
< C, >

C est la construction syntaxique traite, est un ensemble


dhypothses sur les variables dans C, et r est le rsultat
obtenu pour la proprit tudie.

On peut lire ce juegement: le rsultat de la proprite tudie


pour la construction C et suivant les hypothses dans est r.

Jugements

Exemples:
Si la syntaxe tudie est celle des expressions arithmtiques,
et la proprit caractriser, leur valeur, la valeur de la
constante 3 est tablie par le jugement:
< 3, >

Exemples de jugements
Supossons que reprsente lensemble des valeurs en
mmoire pour chacune des variables dans lexpression
tudie. Si = [x 7 5], alors
< x + 3, >

Exemple: Si la proprit tudi est le type, on pourrait tablir


des jugements tels que:
< 3, >

int

ou
< x + 3, [x 7 float] >

float

Systmes dinfrence

Compos de:
Un ensemble de rgles dinfrence: ce sont des jugements

avec premises: ils sont vrais si toutes les premises sont


vraies.
Un ensemble daxiomes: ce sont des jugements sans

premises: ils sont toujours vrais.

Rgles dinfrence

Ce sont des jugements avec premises: ils sont vrais si toutes


les premises sont vraies.
(R)

j1

j2

jn

R est le nom de la rgle


{j1 , , jn } : prmises qui doivent tre satisfaites pour que
le jugement conclusion j soit satisfait.

Axiomes

Ce sont des jugements sans premises: ils sont toujours vrais.

(A)

A est le nom de laxiome


Le jugement j est toujours satisfait.

Exemple: smantique des expressions arithmtiques


La syntaxe: (rappel)
eA := numn | x
| eA1 + eA2 | eA1 eA2
| eA1 eA2 | eA1 /eA2
EA est lensemble des termes de ce langage.
Les jugements (en francais):
le sens dune expression eA est celle de son rsultat
numrique. Plus prcisement, du rsultat des oprations
quelle nonce, en tenant compte des valeurs des variables en
mmoire au moment de lvaluation.
valuer eA dans ltat courant de la mmoire

Un tat de la mmoire

Il donne pour chaque variable, sa valeur courante. On le


modlise par une fonction (partielle) des variables vers leurs
valeurs:
: Var Z

La valeur dune variable x dans un tat est not (x).

Lorsque seules quelques variables nous intressent, nous


noterons = [x 7 5, y 7 2] pour ltat o (x) = 5, et
(y ) = 2, et o la valeur pour tout autre variable nous est
indiffrente.

Jugement pour lvaluation dune expression

Evaluer une expression a EA dans ltat mmoire donne le


rsultat r :
ha, i

Exemple:

hx + 2, [x 7 5]i

Le couple ha, i form dune construction de la syntaxe et dun


tat dvaluation est nomm configuration.

Rgles dvaluation

(An )

hnumn , i

(Add )

(n Z)

(Var )

ha1 , i
n1 ha2 , i
n2
ha1 + a2 , i
n1 + n2

(Sous )

ha1 , i
n1 ha2 , i
n2
ha1 a2 , i
n1 n2

hx, i

(Mul )

(x)

(x dom())

ha1 , i
n1 ha2 , i
n2
ha1 a2 , i
n1 n2

(Div )

ha1 , i
n1 ha2 , i
n2
ha1 /a2 , i
n1 /n2

a1 , a2 , . . . EA
Condition dans toutes les rgles: (n, n1 , n2 . . . Z)

Meta-variables et instances
Dans
(Add )

ha1 , i
n1 ha2 , i
n2
ha1 + a2 , i
n1 + n2

a1 et a2 sont des mta-variables pouvant tre remplaces par


des expressions quelconques du langage EA . Idem pour n1 , ,
...

Lorsque lon remplace les mta-variables dune rgle par des


termes du langage, on obtient une instance de la rgle.
(Add )

hx, [x
7 5]i
5 h2, [x
7 5]i
hx + 2, [x 7 5]i
5+2

est une instance de la rgle Add.

Interprtation des numraux et symboles


Dans les rgles:

(An )

hnumn , i

(n Z)

(Add )

ha1 , i
n1 ha2 , i
n2
ha1 + a2 , i
n1 + n2

numn et a1 + a2 sont des morceaux de syntaxe, alors que


n, n1 , n2 sont des valeurs entires. La diffrence est importante.
Dun cot, nous avons du texte, de lautre, des objets
mathmatiques correspodant au sens, ou interprtation pour ce
texte.

Interprtation des numraux et symboles(2)

Il est possible de rendre compte de cette distinction de manire


explicite au sein de nos rgles.

La fonction dinterprtation [[]] prend en argument un morceau


de la syntaxe et donne en rsultat lobjet mathmatique qui
correspond son interprtation:
[[numn ]] donne en rsultat lentier n correspondant au

numral numn ,
[[+]] dsigne loprateur daddition habituel sur les entiers,

...

Interprtation des numraux et symboles(3)


Nous pouvons alors noncer des rgles plus prcises:

(An )

[[numn ]] = n
(n Z)
hnumn , i
n

(Add )

ha1 , i
n1 ha2 , i
n2
ha1 + a2 , i
n1 [[+]]n2

Cela alourdit considrablement les notations. En gnral,


aprs avoir souslign la diffrence entre un morceau de
syntaxe + et son interprtation [[+]], on prfre laisser cette
distinction implicite dans les notations.

Nous ne changeons doc pas nos rgles...

Exemple dvaluation
Avec ce systme dinfrence, et sachant que est t.q.
(x) = 2, pouvons nous conclure h(2 3) + x, i
8?

Nous allons construire un arbre de drivation pour ce jugement:


la racine: est le jugement que nous souhaitons obtenir en

conclusion h(2 3) + x, i

8,

les noeuds: sont les jugements premisses, ainsi que les

instances des rgles nous permettant dobtenir chaque


conclusion intermdiaire ou finale.
les feuilles: sont ncessairement des instances daxiomes.

Arbre de drivation dune valuation


: tat tel que (x) = 2
h(2 3) + x, i
8?

(An )
(Mul )
(Add )

(An )
h2, i
2
h3, i
h2 3, i
6
h(2 3) + x, i

(Var )

hx, i

Chaque noeud (jugement) a pour fils les jugments qui lui sont
ncessaires en tant que premisses. Il est tiquett par le nom
de la rgle ayant permi dobtenir ce jugement. Les feuilles sont
des instances daxiomes.

Arbre de drivation = Preuve


Cet arbre de drivation est une
preuve de validit du jugement h(2 3) + x, [x 7 2]i

dans le systme dinfrence que nous avons nonc.


Conclusion : h(2 3) + x, [x 7 2]i
smantique donne.

8 est un thorme pour la

Et les jugements qui ne sont pas des thormes? Ceux pour


lesquels il nexiste pas darbre de drivation permettant de les
conclure. Exemple: h(2 + 3), ]i
8

Smantique oprationnelle dvaluation grands pas


Dcrire le processus dvaluation laide de systmes
dinfrence dont les rgles portent sur des jugements
exprimant quune valeur v Z est le rsultat de lvaluation
dune expression a EA tant donne une valuation V[Z] :
ha, i

Caractriser un sous-ensemble des jugements de la forme


ha, i
v qui sont corrects dun point de vue smantique : il
sagit de lensemble des thormes dun systme dinfrence.
Exemples
h3 + 2, i
5 est un thorme
h3 + 2, i
1 nest pas un thorme, il sagit dun jugement
syntaxiquement correct mais smantiquement erron

Notre smantique oprationnelle: bilan

Ce que nous avons fait:


caractriser les configurations pour les expressions

arithmtiques smantiquement correctes du point de vue


de leur valuation, i.e., pouvant tre values,
caractris leur valeur,
impos un ordre dvaluation pour leurs sous-expressions

Nous obtenons une description prcise de la valeur de


nimporte quelle configuration dexpression arithmtique
smantiquement correcte. Nous pouvons en dduire un
algorithme dvaluation.

Notre smantique oprationnelle: bilan (2)


Ce que nous navons pas fait:
caractriser de facon prcise les configurations rrones:

que se passe-t-il si nous ne sommes pas capables


dobtenir une drivation, est-ce parce quelle nexiste pas,
ou parce que nous ne savons pas faire?
caractrisr le rsultat obtenu si lon tente dvaluer une

configuration rrone.
Notre algorithme sait-il dcider si une configuration nest pas
smantiquement correcte? Que se passe-t-il si cela survient au
milieu dune valuation?
Nous devrons ajouter les erreurs!

Une proprit dans notre smantique: lquivalence


Caractriser les expressions arithmtiques smantiquement
quivalentes: qui svaluent la mme valeur.

a1 a2 (v VA V[Z] ha1 , i

v ha2 , i

a1 et a2 sont quivalentes si indpendamment du contexte


dvaluation elles svaluent dans une mme valeur.
Exemple: x + x 2 x

v)

Technique de preuve

Comme pour toute quivalence, nous devons montrer deux


noncs: si nous supposons valide chaque membre de
lquivalence, cela nous permet den dduire lautre.

Nous devons donc montrer que pour tout tat les deux
noncs suivants sont valides:

(1) Si hx + x, i

n alors h2 x, i

n,

(2) Si h2 x, i

n, alors hx + x, i

n.

Technique de preuve (2)

Pour montrer (1) Si hx + x, i

n alors h2 x, i

nous supposons valide hx + x, i

n,

n,

nous construisons un arbre de preuve pour ce jugement,


nous rutilisons des sous-arbres de cette drivation afin

dobtenir une preuve (drivation) pour h2 x, i

et nous laissons la preuve du rciproque en exercice...

Expressions arithmtiques quivalentes


Si (1) : hx + x, i

n, alors:

(Var )
(Add )

(Var )
hx, i
(x)
hx, i
hx + x, i
(x) + (x)

(x)

o (x) + (x) = n. En rutilisant le sous-arbre (Var), on peut


construire larbre :
(An )
(Mul )

h2, i
2
h2 x, i

(Var )

hx, i
2 (x)

(x)

qui est une preuve pour h2 x, i


2 (x). Mais, puisque
2 (x) = (x) + (x) = n, on a bien une preuve de
h2 x, i
n.
La rciproque (2) est laisse en exercice.

Un mini-langage impratif: While


Syntaxe:
c := skip | x := a | c1 ; c2 | if b then c1 else c2 | while (b) do c
a := numn | x | a1 + a2 | a1 a2 | a1 a2 | a1 /a2 | (a1 )
b := true | false | a1 a2 | a1 = a2 | not b1 | b1 or b2 | b1 and b2

a, a1 . . . EA dsignent les expressions arithmtiques


b, b1 . . . EB ensembles des expressions bolennes
c, c1 . . . EC ensemble des instructions du langage While

Exemples pour la syntaxe

Instruction de calcul du PGCD:

while (not (x = y )) do if x y then y := y x else x := x y

Expression bolenne: not (x = 0 and x (7/z))

Smantique des expressions boolennes

Mme dmarche quavec les expressions arithmtiques.


Les jugements: hb, i t o:
b EB est une construction syntaxique pour les

expressions bolennes,
t B est une valeur de vrit dans lensemble

B = {true, false}
et quon lit: une expression boolenne b svalue en une valeur
t B tant donne une valuation .

Interprtation des constantes et oprateurs

Interprter une expression boolenne cest lui donner une


valeur appartenant B avec B = {true, false}.
t IB est interprt par lui-mme : [[true]] = true et
[[false]] = false
{=, } interprts par les oprateurs habituels.
[[ or ]]=
[[ and ]]=
[[not ]]=

Systme dinfrence

(B= )
(Bc )

ha1 , i
n1 ha2 , i
n2
ha , i
n1 ha2 , i
n2
(B ) 1
ha1 = a2 , i (n1 = n2 )
ha1 a2 , i (n1 n2 )

ht, i t

(B )

t B

(B )

hb1 , i v1 hb2 , i v2
hb1 and b2 , i v1 v2

hb1 , i v1 hb2 , i v2
hb1 or b2 , i v1 v2

(B )

hb, i t
hnot b, i (t)

Pour toutes les rgles avec occurrences de n1 , n2 , : n1 , n2 Z

Expressions et changements dtats


Nous avons dfini les tats:
: Var Z
afin de donner des valeurs aux variables entires prsentes
dans une expression:
Soit = [x 7 5] alors hx + 2, i

Si nous retraons en rouge lvolution des tats:


[x 7 5] x + 2

7 [x 7 5]

ltat avant valuation de lexpression est = [x 7 5]


ltat aprs valuation ne change pas.

Expressions, instructions et changements dtat


Effet dune instruction: Un programme impratif ralise des
affectations: les valeurs des variables en mmoire sont
modifis:
(tat avant) = [x 7 5] x := x+1 [x 7 6] = 1 (tat aprs)
tat avant valuation 6 = tat aprs valuation

Effet dune expression: ne change pas ltat courant de la


mmoire: elle linspecte.

(tat avant) [x 7 5] x + 1

7 [x 7 5] (tat aprs)

Instructions et changements dtat


Le rle dun programme c est de modifier ltat courant 1 de la
mmoire en un tat 2 :
hc, 1 i 2
Lexcution de linstruction c dans ltat 1 conduit ltat 2 .
Nous dcrivons lexcution dune instruction par le changement
dtat quelle provoque.

Changement dtat: [x n](y ) =

Exemple: hx := 0, i [x 0]

n
si y = x
(y ) sinon

Smantique oprationnelle de While: jugements


le sens dune expression est celui de caulculer une valeur.

Pour cela on peut avoir besoin dinspecter ltat des


variables,
le sens dune instruction de While est de (possiblement)

modifier ltat courant de la mmoire.


Les jugements pour une smantique de While ne cherchent
donc pas calculer une valeur, mais un nouvel tat.
hc, 1 i 2
o c est une instruction de While.

Rgles pour une smantique de While

(C2 )

ha, i
n
hx := a, i [x n]

nZ

(C1 )

hskip, i

(C3 )

hc1 , i 1 hc2 , 1 i 2
hc1 ; c2 , i 2

(C4 )

hb, i true hc1 , i 1


hif b then c1 else c2 , i 1

(C5 )

hb, i false hc2 , i 2


hif b then c1 else c2 , i 2

(C7 )

hb, i true hc, i 1 hwhile b do c, 1 i 2


hwhile b do c, i 2

(C6 )

hb, i false
hwhile b do c, i

Smantique oprationnelle grands pas : exemple

(An )

(C2 )
(C3 )

D1 D2 D3
h0, i
0
(C7 )
hx := 0, i 1
hwhile x 0 do x := x + 1, 1 i 2
hx := 0 ; while x 0 do x := x + 1, i 2

o 1 = [x 0], 2 = 1 [x 1]. D1 et D2 sont des arbres de


drivation pour hx 0, 1 i true et hx := x + 1, 1 i 2 .
D3 est larbre :
(Var )

(An )
hx, 2 i
1
h0, 2 i
0
hx 0, 2 i false
(C6 )
hwhile x 0 do x := x + 1, 2 i 2
(B )

Effets de bords lors de lvaluation dexpressions


La rgle:
(C4 )

hb, i true hc1 , i 1


hif b then c1 else c2 , i 1

ainsi que (C5 ) ne sont correctes que si lvaluation dune


expression boolenne ne modifie pas ltat dans lequel
seffectue lvaluation.
Est-ce le cas avec le langage C? Non:
if (i++ > 0) i=i-1 else i=i+1;
... mme remarque pour toutes les rgles ncessitant
lvaluation dune expression.

Programmes quivalents
Deux programmes c1 , c2 sont quivalents, not c1 c2 si leur
excution partir dun mme tat initial aboutt dans un tat
final identique.
c1 , c2 EC :
c1 c2 (, 0 V[Z] hc1 , i 0 hc2 , i 0 )

Exemples :
if b then I else I I
if b then I else skip 6 I

Programmes quivalents: exemples(1)

c; (if b then c 0 else c 00 ) if b then (c; c 0 ) else (c; c 00 )


Non. Voici un contre-exemple:
c
c0
c 00
b

x := 0
x := x + 1
x := x + 5
1x
(x) = 2

hc; (if b then c 0 else c 00 ), i 0


0 (x) = 5
0
00
00
hif b then (c; c ) else (c; c ), i 00 (x) = 1

Programmes quivalents : exemples (2)

Si:
c1 : (if b then c else c 0 ); c 00
c2 : if b then (c; c 00 ) else (c 0 ; c 00 )
?

c1 c2
Pour , 0 quelconques, nous construisons un arbre dinfrence
de hc1 , i 0 partir dun arbre de dinfrence de
hc2 , i 0 et vice versa.

Programmes quivalents : exemples (3)

Si on dispose dun arbre dinfrence de


h(if b then c else c 0 ); c 00 , i 0 , il a forcment t obtenu
partir de la rgle C3 :

..
..
.
.
(Cj ) 00
(Ci )
0
hif b then c else c , i 1
hc , 1 i 0
(C3 )
0
00
h(if b then c else c ); c , i 0
On distingue alors deux cas (rsultat de lvaluation de b).

Programmes quivalents : exemples (4)


(1) Si b svalue true, alors, partir de larbre :
..
.

..
.
..
hb, i
true
hc, i 1
.
(C
)
k
hif b then c else c 0 , i 1
hc 00 , 1 i 0
h(if b then c else c 0 ); c 00 , i 0

(Bi )
(C4 )
(C3 )

(Cj )

on peut obtenir larbre :


..
..
.
.
(Ck ) 00
(Cj )
hc, i 1
hc , 1 i 0
(C3 )
(Bi )
hb, i
true
hc; c 00 , i 0
(C4 )
hif b then (c; c 00 ) else (c 0 ; c 00 ), i 0
..
.

et vice versa.

Programmes quivalents : exemples (5)


(2) Si b svalue false, alors, partir de larbre :
..
.

..
.
..
hb, i
false
hc 0 , i 1
.
(C
)
k
hif b then c else c 0 , i 1
hc 00 , 1 i 0
h(if b then c else c 0 ); c 00 , i 0

(Bi )
(C5 )
(C3 )

(Cj )

on peut obtenir larbre :


..
..
.
.
(Cj ) 0
(Ck ) 00
hc , i 1
hc , 1 i 0
(C3 )
(Bi )
hb, i
false
hc 0 ; c 00 , i 0
(C5 )
00
hif b then (c; c ) else (c 0 ; c 00 ), i 0
..
.

et vice versa.

Boucles et Terminaison
Linstruction while permet dcrire des programmes dont
lexcution ne termine pas.
Les arbres dinfrence tant des objets finis, la smantique
oprationnelle grands pas nest pas en mesure de rendre compte
de lexcution des programmes qui ne terminent pas ... contrairement
la smantique oprationnelle petits pas.
Exemple: while true do skip

(Bc )
(C7 )

htrue, i

..
.
(C1 )
(C7 )
true
hskip, i
hwhile true do skip, i 0
hwhile true do skip, i 0

Il nexiste pas dtat 0 tel que hwhile true do skip, i 0 .

Vous aimerez peut-être aussi