Projective ML

We propose a projective lambda calculus as the basis for operations on records. Projections operate on elevations, that is, records with defaults. This calculus extends lambda calculus while keeping its essential properties. We build projective ML from this calculus by adding the ML Let typing rule to the simply typed projective calculus. We show that projective ML possesses the subject reduction property, which means that well-typed programs can be reduced safely. Elevations are practical data structures that can be compiled efficiently. Moreover, standard records are difinable in terms of projections.

[1]  Mario Coppo,et al.  An Extended Polymorphic Type System for Applicative Languages , 1980, MFCS.

[2]  Alberto Martelli,et al.  An Efficient Unification Algorithm , 1982, TOPL.

[3]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[4]  Claude Kirchner Computing Unification Algorithms , 1986, LICS.

[5]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[6]  Peter Buneman,et al.  Type inference in a database programming language , 1988, LISP and Functional Programming.

[7]  John C. Mitchell,et al.  ML with extended pattern matching and subtypes , 1988, LISP and Functional Programming.

[8]  Mitchell Wand,et al.  Type inference for record concatenation and multiple inheritance , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[9]  Claude Kirchner,et al.  Syntactic theories and unification , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[10]  Xavier Leroy,et al.  The ZINC experiment : an economical implementation of the ML language , 1990 .

[11]  Robert Harper,et al.  Extensible records without subsumption , 1990 .

[12]  Claude Kirchner,et al.  Solving Equations in Abstract Algebras: A Rule-Based Survey of Unification , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[13]  Luca Cardelli,et al.  Operations on records , 1989, Mathematical Structures in Computer Science.

[14]  Benjamin C. Pierce,et al.  A record calculus based on symmetric concatenation , 1991, POPL '91.

[15]  B. Pierce Programming with intersection types, union types, and polymorphism , 1991 .

[16]  Didier Rémy,et al.  Typing record concatenation for free , 1992, POPL '92.

[17]  Paola Giannini,et al.  A Complete Type Inference Algorithm for Simple Intersection Types , 1992, CAAP.

[18]  Didier Rémy Syntactic theories and the algebra of record terms , 1992 .

[19]  Luca Cardelli,et al.  Extensible records in a pure calculus of subtyping , 1994 .

[20]  Didier Rémy,et al.  Type inference for records in natural extension of ML , 1994 .