• Aucun résultat trouvé

Typage monomorphe à la Curry

N/A
N/A
Protected

Academic year: 2022

Partager "Typage monomorphe à la Curry"

Copied!
10
0
0

Texte intégral

(1)

Typage monomorphe à la Curry

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

(2)

Typage monomorphe

Expressions à la Curry

M ::= x |

cte |

hM,Mi |

M M |

λx.M |

let x =M in M

(3)

Quelques exemples

let x :int =3 in x+1 s'écrit maintenant

let x =3 in x +1

let x :int =4 in(let y :int =x +1 in x∗y)) s'écrit maintenant

let x =4 in(let y =x +1 in x∗y))

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

(4)

Règles du typage monomorphe à la Curry

Γ`x : Γ(x) Γ`cte :TC(cte)

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

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

Γ` hM,Ni:A×B

Γ`M :A Γ,x :A`N :B Γ`let x =M in N :B

(5)

Propriétés ?

L'unicitén'est plus vraie :

`λx.x :int →int `λx.x :bool →bool

Mais les deux fonctions sont une instanced'une même fonction identité qui se comporte de la même façon :

Polymorphisme

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

(6)

Vers un algorithme de typage

Les substitutions

Les unicateurs d'un système d'équations

Algorithme d'unication d'un système d'équations

La construction d'un système d'équations à partir d'un terme Algorithme de typage d'un terme à l'aide de l'unication

(7)

Types à la Curry : dicultés de l'algorithme de typage

Type(Γ, λx.M) =A→B s'il existeA t.q.

Type((Γ,x :A),M) =B Type(Γ,let x =M in N) =B s'il existeA t.q.

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

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

(8)

Vers un algorithme de typage

Soit M un terme à typer. Pour chaque variable x de M on introduit unevariable de typeαx et pour chaque sous-expressionN de M on introduit une variable de typeαN.

On introduit un tableau de schémas de typespour les constantes, appelé STC. Ainsi par exemple STC(fst) =α×β→α.

On associe à M un système d'équations SE(M) comme suit :

M SE(M)

x {αM .

x}

cte {αM .

=STC(cte)}

hN,Li {αM .

N ×αL} ∪SE(N)∪SE(L)

N L {αN .

L →αM} ∪SE(N)∪SE(L) .

(9)

Correction et complétude de l'algorithme de typage

Théorème : (Correction) Siσ est une solution de SE(M), alors

∆`M :τ(αM), où ∆ ={x :τ(αx)|x ∈FV(M)} et τ est une instance deσ.

Théorème : (Complétude) S'il existent∆et A t.q.∆`M :A, alors SE(M) admet une solution.

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

(10)

Principalité de l'algorithme de typage

Théorème : (Principalité) Si M est typable, i.e.,∆`M :A, alors A est une instance du type principalσ(αM), où σ est une solution principale du système SE(M).

Références

Documents relatifs

[r]

• Les océans et l’atmosphère répartissent ensuite cette énergie qui les met en mouvement, créant les vents et les courants qui transportent chaleur et

Trouver la position du curseur a afin que la courbe représentative de h coïncide avec la trace du point

Avec cinq graduations intermédiaires au minimum, celui-ci donne 40 configurations possibles qui incluent les deux qui viennent d’être mentionnées.. Pour L variant de 24

- Afin d’avoir l’argent nécessaire pour faire partie de l’excursion, Cédric et Abdel décide de faire un petit job : défricher un terrain ayant la forme d’un triangle

En 1697, Nicolas Lemery, auteur d’une Pharmacopée universelle cite 42 recettes différentes d’emplâtres, toujours avec le même principe de base : on cuit un oxyde de plomb avec

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

[r]