Typing Classes and Mixins with Intersection Types

Jan Bessai
(Technical University of Dortmund)
Boris Düdder
(Technical University of Dortmund)
Andrej Dudenhefner
(Technical University of Dortmund)
Tzu-Chun Chen
(Technical University of Darmstadt)
Ugo de'Liguoro
(University of Torino)

We study an assignment system of intersection types for a lambda-calculus with records and a record-merge operator, where types are preserved both under subject reduction and expansion. The calculus is expressive enough to naturally represent mixins as functions over recursively defined classes, whose fixed points, the objects, are recursive records. In spite of the double recursion that is involved in their definition, classes and mixins can be meaningfully typed without resorting to neither recursive nor F-bounded polymorphic types.

We then adapt mixin construct and composition to Java and C#, relying solely on existing features in such a way that the resulting code remains typable in the respective type systems. We exhibit some example code, and study its typings in the intersection type system via interpretation into the lambda-calculus with records we have proposed.

In Jakob Rehof: Proceedings Seventh Workshop on Intersection Types and Related Systems (ITRS 2014), Vienna, Austria, 18 July 2014, Electronic Proceedings in Theoretical Computer Science 177, pp. 79–93.
Published: 17th March 2015.

ArXived at: https://dx.doi.org/10.4204/EPTCS.177.7 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org