Programming with first-class modules in a core language with subtyping, singleton kinds and open existential types

Abstract : This thesis explains how the adjunction of three features to System Fω allows writing programs in a modular way in an explicit system à la Church, while keeping a style that is similar to ML modules. The first chapter focuses on open existential types, which provide a way to consider existential types without scope restrictions: they permit to organize programs in a more flexible manner. The second chapter is devoted to the study of singleton kinds, which model type definitions: in this framework, we give a simple characterization of type equivalence, that is based on a confluent and strongly normalizing reduction relation. The last chapter integrates the two previous notions into a core language equipped with a subtyping relation: it greatly improves the modularity of Fω to a level that is comparable with the flexibility of ML modules. A translation from modules to this core language is defined, and is used to precisely compare the two languages.
Document type :
Theses
Liste complète des métadonnées

Cited literature [91 references]  Display  Hide  Download

https://pastel.archives-ouvertes.fr/tel-00550331
Contributor : Benoît Montagu <>
Submitted on : Monday, December 27, 2010 - 9:34:20 AM
Last modification on : Friday, May 25, 2018 - 12:02:07 PM
Document(s) archivé(s) le : Monday, March 28, 2011 - 2:31:16 AM

Identifiers

  • HAL Id : tel-00550331, version 1

Collections

Citation

Benoît Montagu. Programming with first-class modules in a core language with subtyping, singleton kinds and open existential types. Programming Languages [cs.PL]. Ecole Polytechnique X, 2010. English. ⟨tel-00550331⟩

Share

Metrics

Record views

1127

Files downloads

370