• Aucun résultat trouvé

Typage monomorphe à la Church

N/A
N/A
Protected

Academic year: 2022

Partager "Typage monomorphe à la Church"

Copied!
4
0
0

Texte intégral

(1)

Types

Motivations

Spécier partiellement un programme Éviter de programmes absurdes (1 +true) Éviter la violation de la mémoire

Ne pas écrire un programme ayant des comportements indénis Ne pas mélanger ou confondre les valeurs (1 + 1.2)

Éviter la sémantique qui dépend du modèle de la machine

2

Plan

Types monomorphes À la Church À la Curry

Unication

Inférence de types Types polymorphes

À la Church

À la Curry (inférence de types) Types existentiels

3

Typage monomorphe à la Church

(2)

Typage monomorphe Types :

A::=T |A×A|A→A

Exemple :

int→bool bool×bool bool→(bool→int)

bool×(bool→int) (bool→bool)→int

5

Expressions à la Church

M ::= x |

cte |

hM, Mi |

M M |

λx:A.M |

letx:A=M inM

6

Quelques exemples

letx:int= 3inx+ 1

letx:int= (if truethen1else2)inx+ 1

letx:int= 4in(lety :int=x+ 1inx∗y)

letf :int→int= (λx:int.x+ 1)inf (f x)

f ix(λf act:int→int.λx :int.if xthen1else(x∗f act(x1))

7

Règles de réduction

(λx:A.M)N M{x/N}

letx:A=N inM M{x/N}

f ix M M (f ix M)

f sthM, Ni M

sndhM, Ni N

if truethenM elseN M if f alsethenM elseN N if 0 thenM elseN M

if nthenM elseN N, n6= 0

8

(3)

Règles de typage monomorphe à la Church

Pour chaquecte il existe un type A, qu'on noteT C(cte) :A. Un environnement de typageΓ est un ensemble de la forme

x1:A1, . . . , xn:An. Dans ce cas on écrit Γ(xi)pour dénoter Ai. Γ`xi : Γ(xi) Γ`cte:T C(cte)

Γ`M :A→B Γ`N :A Γ`M N :B

Γ, x:A`M :B Γ`λx:A.M :A→B

Γ`M :A Γ`N :B Γ` hM, Ni:A×B

Γ` M :A Γ, x:A`N :B Γ`letx:A=M inN :B

9

Exemples de dérivations

x:int`+ :int×int→int

x:int`x:int x:int`1 :int x:int` hx,1i:int×int x:int`+hx,1i:int

∅ `λx:int.+hx,1i:int→int

Soit (∗) =f :int→int`f :int→int

(∗)

(∗) f :int→int`3 :int f :int→int`f 3 :int f :int→int`f (f 3) :int

10

∅ `λx:int.+hx,1i:int→int f :int→int`f (f 3) :int

∅ `letf :int→int= (λx:int.+hx,1i)inf (f 3) :int

11

Propriétés du typage

(Unicité) Si Γ` M :Aet Γ`M :B, alorsA≡B

(Aaiblissement) SoitΓ ={x:B|x∈F V(M)} et soitΓ∆. Alors Γ`M :Assi ∆`M :A.

(Préservation) Si Γ`M :A etM ⇒M0, alorsΓ`M0:A

12

(4)

Algorithme de typage

T ype(Γ, cte) =T C(cte)

T ype(Γ, x) =A six:A∈Γ

T ype(Γ, λx:A.M) =A→B siT ype((Γ, x:A), M) =B T ype(Γ,hM, Ni) =A×B siT ype(Γ, M) =Aet

T ype(Γ, N) =B

T ype(Γ, M N) =B siT ype(Γ, M) =A→Bet

T ype(Γ, N) =A T ype(Γ,letx:A=M inN) =B siT ype(Γ, M) =Aet

T ype((Γ, x:A), N) =B

T ype(Γ, M) =erreur sinon

13

Propriétés de l'algorithme de typage

(Terminaison) Pour tout termeM et tout environnementΓ, l'appel T ype(Γ, M)termine.

(Correction) Si T ype(Γ, M) =A, alorsΓ`M :A. (Complétude) Si Γ`M :A, alorsT ype(Γ, M) =A.

Autrement dit,

Si T ype(Γ, M) =erreur, alorsM n'est pas typable dansΓ.

14

Références

Documents relatifs

EZ MASK EST LACHAT OBLIGATOIRE POUR TOUTE PERSONNE SPECIALlSÉE DANS LE DÉTOURAGESOUS PHOTOSHOP.. P67

COMMENT APPRÉHENDER LES DIFFÉRENTS MODES DE FUSION D'XPRESS AFIN D'EN EXPLOITERTOUTES LES RESSOURCES,. P32DOSSiER P39ÉTAPES

ALAINDESCAMPS ESTARRIVÉ PARHASARD DANSLEMÉTIER ALORSOUlL ÉTAITEMPLOYÉ COMME TECHNICIEN ENÉLECTRONIQUE.

SI LES MONITEURS À MATRICE ACTIVE LED RESTENT ENCORE ONÉREUX, LE SAMSUNG XL20 RISQUE BIEN D'ÊTRE LE PREMIER MODÈLE À DÉMOCRATISER CETTE

Afin d'éviter les blessures, il est important de les étirer et d'assurer un renforcement musculaire.. Les os sont articulés

o « forte probabilité que l’enfant à naître soit atteint d’une affection d’une particulière gravité reconnue comme incurable au moment du diagnostic ». o 3 conditions

N OM DE L ’ AUTEUR Prénom de l’auteur, « Titre de l’article », dans Titre de l’encyclopédie, tome, lieu d’édition, Édition, année d’édition, première et dernière

Sans compter que cette question du plagiat est prise en considération de manière plus violente dans les études supérieures (renvoi possible). Cette question