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

Abstract

Directeur de thèse : Didier Rémy (INRIA Rocquencourt) Rapporteur : Benjamin Pierce (Université de Pennsylvanie, USA) Rapporteur : Jacques Garrigue (Université de Kyoto, Japon) Président : Roberto Di Cosmo (Université Paris 7) Examinateur : Claude Kirchner (INRIA Lorraine) Examinateur : Dale Miller (Ecole Polytechnique)We propose a type system MLF that generalizes ML with first-classpolymorphism as in System F. Expressions may contain second-order typeannotations. Every typable expression admits a principal type, whichhowever depends on type annotations. Principal types capture all othertypes that can be obtained by implicit type instantiationand they can be inferred.All expressions of ML are well-typed without any annotations.All expressions of System F can be mechanically encoded into MLFby 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 usedpolymorphically need to remain annotated.Nous nous intéressons à une extension de ML avec polymorphismede première classe, à la manière du Système F.Cette extension, nommée MLF, utilise les annotations de typesd'ordre supérieur données explicitement dans le programme pour inférerde manière principale le type le plus général. Toute expression admetainsi un type principal, qui dépend des annotations présentesinitialement dans le programme.Toute expression de ML est typable dans MLF sans annotationsupplémentaire. Les expressions du Système F sont encodées demanière systématique dans MLF en supprimant les abstractionset les applications de types, et en traduisant les annotationsde types dans le langage de types de MLF.De plus, les paramètres de lambda-abstractions qui ne sont pasutilisés de manière polymorphe n'ont pas besoin d'être annotés

    Similar works