• Aucun résultat trouvé

DeliaKesner(UniversitéParisDiderot) Typage 20181/14 Types

N/A
N/A
Protected

Academic year: 2022

Partager "DeliaKesner(UniversitéParisDiderot) Typage 20181/14 Types"

Copied!
14
0
0

Texte intégral

(1)

Types

Delia Kesner (Université Paris Diderot) Typage 2018 1 / 14

(2)

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

(3)

Plan

Types monomorphes

I À la Church

I À la Curry

F Unication

F Inférence de types

Types polymorphes

I À la Church

I À la Curry (inférence de types)

Delia Kesner (Université Paris Diderot) Typage 2018 3 / 14

(4)

Typage monomorphe à la Church

(5)

Typage monomorphe

Types :

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

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

Delia Kesner (Université Paris Diderot) Typage 2018 5 / 14

(6)

Expressions à la Church

M ::= x |

cte |

hM,Mi |

M M |

λx :A.M |

let x :A=M in M

(7)

Quelques exemples

let x :int =3 in x+1

let x :int = (if true then 1 else 2)in x +1 let x :int=4 in(let y :int =x +1 in x∗y)

let f :int →int= (λx :int.x +1)in f (f x)

x(λfact :int →int.λx :int.if x then 1 else(x ∗fact(x−1))

Delia Kesner (Université Paris Diderot) Typage 2018 7 / 14

(8)

Règles de réduction

(λx :A.M)N ⇒ M{x/N} let x :A=N in M ⇒ M{x/N}

x M ⇒ M (x M)

fsthM,Ni ⇒ M

sndhM,Ni ⇒ N

if true then M else N ⇒ M if false then M else N ⇒ N if 0 then M else N ⇒ M

if n then M else N ⇒ N, n 6=0

(9)

Règles de typage monomorphe à la Church

Pour chaque cte il existe un type A, qu'on note TC(cte) :A. Un environnementde typage Γ est un ensemble de la forme

x1:A1, . . . ,xn:An. Dans ce cas on écritΓ(xi) pour dénoter Ai. Γ`xi : Γ(xi) Γ`cte :TC(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 Γ`let x :A=M in N :B

Delia Kesner (Université Paris Diderot) Typage 2018 9 / 14

(10)

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

(11)

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

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

Delia Kesner (Université Paris Diderot) Typage 2018 11 / 14

(12)

Propriétés du typage

(Unicité) : SiΓ`M :A etΓ`M :B, alors A≡B

(Aaiblissement): SoitΓ ={x :B|x ∈FV(M)} et soitΓ⊆∆. Alors Γ`M :A ssi∆`M :A.

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

(13)

Algorithme de typage

Type(Γ,cte) =TC(cte)

Type(Γ,x) =A si x :AΓ

Type(Γ, λx :A.M) =AB siType((Γ,x:A),M) =B Type(Γ,hM,Ni) =A×B siType(Γ,M) =A et

Type(Γ,N) =B

Type(Γ,M N) =B siType(Γ,M) =AB et Type(Γ,N) =A

Type(Γ,let x:A=M in N) =B siType(Γ,M) =A et Type((Γ,x:A),N) =B

Type(Γ,M) =erreur sinon

Delia Kesner (Université Paris Diderot) Typage 2018 13 / 14

(14)

Propriétés de l'algorithme de typage

(Terminaison): Pour tout terme M et tout environnementΓ, l'appel Type(Γ,M) termine.

(Correction) : SiType(Γ,M) =A, alors Γ`M :A.

(Complétude) : SiΓ`M :A, alorsType(Γ,M) =A.

Autrement dit,

SiType(Γ,M) =erreur, alors M n'est pas typable dans Γ.

Références

Documents relatifs

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

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

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

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