MLF: An extension of ML with first-class polymorphism and implicit instantiation - PASTEL - Thèses en ligne de ParisTech
Thèse Année : 2004

MLF: An extension of ML with first-class polymorphism and implicit instantiation

MLF : Une extension de ML avec polymorphisme de second ordre et instanciation implicite

Résumé

We propose a type system MLF that generalizes ML with first-class
polymorphism as in System F. Expressions may contain second-order type
annotations. Every typable expression admits a principal type, which
however depends on type annotations. Principal types capture all other
types that can be obtained by implicit type instantiation
and they can be inferred.

All expressions of ML are well-typed without any annotations.
All expressions of System F can be mechanically encoded into MLF
by dropping all type abstractions and type applications,
and injecting type annotations of lambda-abstractions into MLF types.
Moreover, only parameters of lambda-abstractions that are used
polymorphically need to remain annotated.
Nous nous intéressons à une extension de ML avec polymorphisme
de première classe, à la manière du Système F.
Cette extension, nommée MLF, utilise les annotations de types
d'ordre supérieur données explicitement dans le programme pour inférer
de manière principale le type le plus général. Toute expression admet
ainsi un type principal, qui dépend des annotations présentes
initialement dans le programme.

Toute expression de ML est typable dans MLF sans annotation
supplémentaire. Les expressions du Système F sont encodées de
manière systématique dans MLF en supprimant les abstractions
et les applications de types, et en traduisant les annotations
de types dans le langage de types de MLF.
De plus, les paramètres de lambda-abstractions qui ne sont pas
utilisés de manière polymorphe n'ont pas besoin d'être annotés.
Fichier principal
Vignette du fichier
tel-00007132.pdf (2.16 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00007132 , version 1 (15-10-2004)

Identifiants

  • HAL Id : tel-00007132 , version 1

Citer

Didier Le Botlan. MLF: An extension of ML with first-class polymorphism and implicit instantiation. Other [cs.OH]. Ecole Polytechnique X, 2004. English. ⟨NNT : ⟩. ⟨tel-00007132⟩
257 Consultations
543 Téléchargements

Partager

More