Programmation, langages, compilation 3
–
S´emantique
E. Lozes
Exercice 1 – D´efinitions r´ecursives et points fixes
1. Pour chacune des fonctions CAML suivantes, d´efinir sa fonctionnelle
τ: (N→N)→(N→N) et chercher les points fixes :
a)let rec f x =if x > 100 then x−10 b)let rec f x =if xmod 2 = 0 then x+ 1
else f(f(x+ 11)) else f(f(x−1))
c)let rec f x =match xwith d)let rec f x =match xwith
0→1|2→2|x→f(x+ 1) ∗f(x−1) 1 →1|2n→f(n)|2n+ 1 →f(3n+ 2)
2. Soit (D, ≤,W,⊥) un ω-c.p.o, autrement dit ≤est un ordre partiel, ⊥est le
plus petit ´el´ement, et W: (xn)n∈N→Wnxnd´efinit la borne sup de toute
suite croissante (xn)n∈N.
(a) montrer que D → D admet une structure naturelle de ω-c.p.o.
(b) τ:D → D est dite continue si elle est croissante et τ(Wnxn) =
Wnτ(xn). Montrer que l’ensemble des points fixes de τadmet un
plus petit ´el´ement, not´e µ(τ).
3. Application : on note N⊥le ω-d.c.p.o. de domaine N∪ {⊥} ordonn´e par
⊥< n pour tout n, et n, m sont incomparables. Chercher les plus petits
points fixes des fonctionnelles pr´ec´edentes. Moraliser.
Exercice 2 – Point fixe de Tarsky
Soit (X, V,W) un treillis complet, et f:X→Xune fonction croissante :
1. Montrer que V{x:f(x)≤x}d´efinit le plus petit point fixe de f(resp.
W{x:x≤f(x)}le plus grand).
2. Montrer que l’ensemble des points fixes de fest un treillis complet.
Exercice 3 – S´emantique op´erationnelle et d´enotationnelle de TOY
On consid`ere le langage TOY :
c::= a|skip |c;c|if bthen celse c|while bdo c
1