Master project description
TITLE: Polymorphic types for XML

CDuce [1] is a functional language designed to program transformations of XML documents. While it is related to mainstream (ML-like) functional languages, its key difference is the use of semantic subtyping and ad-hoc polymorphism (through the use of overloaded functions). Currently it just has a quite limited form of polymorphism targeted at the definition of list and tree iterators [3]. Some work to define polymorphic functions for XML transformers has already been done [2] but this cannot handle higher-order functions, which jeopardize their application to CDuce. Recent advances [4] make it possible to extend semantic subtyping to polymorphic types, which yields a very rich type algebra: parametric polymorphism, semantic subtyping, overloaded functions, higher-order functions.

The goal of this project is to extend the CDuce language (and possibly implement these extension into the compiler) in order to tightly integrate parametric polymorphism with the rest of the language: (i) the integration should not jeopardize higher-order nor overloading but should (ii) cleverly balance the richness of the type-system with the usability of the language by seasoned programmers.

Required background
Acquaintance with type theory and functional programming
References
Contacts
Joint supervision with Kim Nguyen

Giuseppe Castagna : PPS Laboratory, Université Paris 7.
Kim Nguyen : LRI Laboratory, Université Paris 11.