Types et contraintes graphiques : polymorphisme de second ordre et inférence

par Boris Yakobowski

Thèse de doctorat en Informatique

Sous la direction de Didier Rémy.

Soutenue en 2008

à Paris 7 .


  • Résumé

    MLFest un système de types proposant à la fois le polymorphisme implicite mais de seconde classe de ML, et le polymorphisme de première classe mais explicite du Système F. Nous proposons une représentation des types de MLFqui superpose un graphe acyclique orienté du premier ordre (encodant la structure du type avec partage) et un arbre inversé (encodant la structure de lieurs du type). Cela permet une définition simple et directe de l'instance sur les types, qui se décompose en une instance sur la structure du type, des opérations simples sur l'arbre de lieurs, et un contrôle acceptant ou rejettant les opérations. En utilisant cette représentation, nous présentons un algorithme d'unification sur les types de MLF ayant une complexité linéaire. Nous étendons ensuites les types graphiques en un système de contraintes graphiques permettant l'inférence de types à la fois pour ML et MLF. Nous proposons quelques transformations préservant la sémantique de ces contraintes, et donnons une stratégie pour utiliser ces transformations afin de résoudre les contraintes de typage. Nous montrons que l'algorithme résultant a une complexité optimale pour l'inférence de types dans MLF, et que, comme pour ML, cette complexité est linéaire sous des hypothèses raisonnables. Enfin, nous présentons une version à la Church de MLF, appelée xMLF, dans laquelle tous les paramètres de fonctions, toutes les abstractions de type et toutes les instantiations de types sont explicites. Nous donnons des règles de réduction pour réduire les instantiations de types. Le système obtenu est confluent lorsque la réduction forte est autorisée, et vérifie la propriété de réduction du sujet. Nous montrons aussi le lemme de progression pour des stratégies faibles de réduction, dont l'appel par nom et l'appel par valeur en restreignant ou non le polymorphisme aux valeurs. Nous proposons un encodage de MLF dans xMLFqui préserve les types, ce qui assure la sûreté de MLF.

  • Titre traduit

    Graphical types and constraints : second order polymorphism and inference


  • Résumé

    MLF is a type System that seamlessly merges ML-style implicit but second-class polymorphism with System-F explicit first-class polymorphism. We propose a dag representation of MLF types that superimposes a first-order term-dag, encoding the underlying term structure (with sharing), and a binding tree encoding the binding structure. This permits a simple and direct definition of type instance, that combines type instance on term-dags, simple opérations on the binding tree, and a control that allows or rejects potential instances. Using this representation, we build alinear-time unification algorithm for MLF types. We then extend graphic types into a System of graphic constraints that can be used to perform type inference in both ML or MLF. We give a few semantic preserving transformations on constraints, and propose a strategy for applying those transformations to solve typing constraints. We show that the resulting algorithm has optimal complexity for MLF type inference, and that, as for ML, this complexity is linear under reasonable assumptions. We finally present a church-style version xMLFof MLF, in which all parameters of functions, all type abstractions, and ail type instantiations are explicit. We give a set of reduction rules for simplifying type instantiations. The resulting System is confluent when strong reduction is allowed, and enjoys the subject reduction property. We also show progress for weak-reduction strategies, including call-by-name and call-by-value, with or without the value restriction. We exhibit a type preserving encoding of MLF into xMLF, ensuring the type soundness of MLF.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (312 f.)
  • Notes : Publication autorisée par le jury
  • Annexes : 62 réf.

Où se trouve cette thèse ?

  • Bibliothèque : Université Paris Diderot - Paris 7. Service commun de la documentation. Bibliothèque Universitaire des Grands Moulins.
  • PEB soumis à condition
  • Cote : TS (2008) 197
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.