## A Record Calculus Based on Symmetric Concatenation (1991)

Venue: | In Proc. of the ACM Symp. on Principles of Programming Languages |

Citations: | 61 - 2 self |

### BibTeX

@INPROCEEDINGS{Harper91arecord,

author = {Robert Harper and Benjamin Pierce},

title = {A Record Calculus Based on Symmetric Concatenation},

booktitle = {In Proc. of the ACM Symp. on Principles of Programming Languages},

year = {1991},

pages = {131--142},

publisher = {ACM}

}

### Years of Citing Articles

### OpenURL

### Abstract

Type systems for operations on extensible records form a foundation for statically typed languages addressing some aspects of object oriented programming and database applications. A number of primitive operations have been proposed: extending a record with a new field, overwriting an existing field, removing a field, and various kinds of concatenation. We show here that a record calculus based on a symmetric concatenation operator, where two records may be concatenated only if they have no overlapping fields, also captures the types of many other useful primitive record operations. "Mergeability constraints" are expressed directly using explicit annotations on type variables and constrained second-order type quantification instead of a rule of subsumption; we argue that the resulting system is more straightforward than subsumption-based alternatives. This research was supported in part by the Office of Naval Research and in part by the Defense Advanced Research Projects Agency (DOD), ...

### Citations

1602 | The De of Standard ML
- Milner, Tofte, et al.
- 1990
(Show Context)
Citation Context ...n extraction types like a:l, is somewhat shorter. 3.2 Object-Oriented Programming Wand [25, 26, 27, 28] has shown how a simple form of object-oriented programming may be modeled in an extension of ML =-=[14, 16]-=- with record concatenation and recursive types. An analogous construction can be made in an extension ofsjj with polymorphism (quantification over arbitrary types), fixed point operators at the term l... |

1379 |
A Calculus of Communicating Systems
- MILNER
- 1980
(Show Context)
Citation Context ...e are equal under our interpretation of recursive types. This argument may be made precise by considering a definition of type equivalence similar to the definition of bisimulation equivalence in CCS =-=[15]-=-. To establish the above equivalence, it suffices to show that it is consistent to assume that it holds, where the consistency constraints ensure, for example, that two records are equal only if they ... |

958 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ...n extraction types like a:l, is somewhat shorter. 3.2 Object-Oriented Programming Wand [25, 26, 27, 28] has shown how a simple form of object-oriented programming may be modeled in an extension of ML =-=[14, 16]-=- with record concatenation and recursive types. An analogous construction can be made in an extension ofsjj with polymorphism (quantification over arbitrary types), fixed point operators at the term l... |

778 | On understanding types, data abstraction, and polymorphism
- Cardelli, Wegner
- 1985
(Show Context)
Citation Context ...0 is expected. The fact that the type of an expression may always be promoted to a supertype is captured by the rule of subsumption : G ` e 2 t G ` tst 0 G ` e 2 t 0 (Subsumption) Cardelli and Wegner =-=[6]-=- extended this idea to a powerful second-order type system combining Cardelli's ordering on record types with type quantification [9, 23] using techniques developed by Mitchell [17]. Wand [25, 26] ana... |

494 | A Semantics of Multiple Inheritance
- Cardelli
- 1988
(Show Context)
Citation Context ...implied, of ONR, DARPA or the U.S. government. Keywords: Lambda calculus and related systems, Language theory, Programming, Type structure, Data types and structures, Records. 1 Introduction Cardelli =-=[2, 3]-=- observed that certain aspects of inheritance in object-oriented languages can be understood in terms of inclusion relations among record types in a typed -calculus. These inclusions are defined forma... |

372 |
Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems
- Huet
- 1983
(Show Context)
Citation Context ...ce and compatibility of types by way of a syntax-directed set of type synthesis rules. Equivalence of well-formed types is established using Huet's method of confluence modulo an equivalence relation =-=[11]. The main idea-=- is to handle the associative and commutative rules for merge types and the permutation and idempotency equations for constraints lists by segregating the "proper reductions" from the "... |

369 |
Towards a theory of type structure
- Reynolds
- 1974
(Show Context)
Citation Context ... G ` e 2 t G ` tst 0 G ` e 2 t 0 (Subsumption) Cardelli and Wegner [6] extended this idea to a powerful second-order type system combining Cardelli's ordering on record types with type quantification =-=[9, 23] using tec-=-hniques developed by Mitchell [17]. Wand [25, 26] analyzed the concept of record polymorphism in the context of ML type inference and introduced the notion of "row variables," which allow ty... |

289 |
Interprétation fonctionelle et élimination des coupures de l’arithmetique d’ordre supérieur
- Girard
- 1972
(Show Context)
Citation Context ... G ` e 2 t G ` tst 0 G ` e 2 t 0 (Subsumption) Cardelli and Wegner [6] extended this idea to a powerful second-order type system combining Cardelli's ordering on record types with type quantification =-=[9, 23] using tec-=-hniques developed by Mitchell [17]. Wand [25, 26] analyzed the concept of record polymorphism in the context of ML type inference and introduced the notion of "row variables," which allow ty... |

247 |
Inheritance is not subtyping
- Cook, Hill, et al.
- 1990
(Show Context)
Citation Context ... Members of the ABEL group have argued persuasively that "bounded quantification does not provide the same degree of flexibility in the presence of recursive types as it does for non-recursive ty=-=pes" [1, 7]-=-. They consider two classes of situations in which problems arise, one when the recursion variable occurs negatively, the other when it occurs positively. To deal with these problems, they propose an ... |

240 |
Principal type schemes for functional programs
- Damas, Milner
- 1982
(Show Context)
Citation Context ...refined types. This intuition, formalized as an appropriate extension to the kind system, plus the restriction that the set of field labels is finite, enabled him to use ordinary unification as in ML =-=[8]-=- to do type inference for programs involving extensible records. Both Wand [28] and R'emy [21, 22] later extended this system to infinite label sets. More recently, Cardelli and Mitchell [4, 5] discov... |

147 | Operations on Records
- Cardelli, Mitchell
- 1994
(Show Context)
Citation Context ... as in ML [8] to do type inference for programs involving extensible records. Both Wand [28] and R'emy [21, 22] later extended this system to infinite label sets. More recently, Cardelli and Mitchell =-=[4, 5]-=- discovered an elegant calculus of primitive record operations combining bounded quantification with positive and negative information about fields and generalizing Cardelli's original subtype orderin... |

144 |
Complete Type Inference for Simple Objects
- Wand
- 1987
(Show Context)
Citation Context ...d Wegner [6] extended this idea to a powerful second-order type system combining Cardelli's ordering on record types with type quantification [9, 23] using techniques developed by Mitchell [17]. Wand =-=[25, 26] analyzed -=-the concept of record polymorphism in the context of ML type inference and introduced the notion of "row variables," which allow types to be given to terms involving a natural record extensi... |

132 |
Typechecking Records and Variants in a Natural Extension of ML
- Rémy
- 1989
(Show Context)
Citation Context ...e notion of "row variables," which allow types to be given to terms involving a natural record extension operator. This work was refined by Jategaonkar and Mitchell [12, 13] and Stansifer [2=-=4]. R'emy [20]-=- introduced the notion of positive and negative information about record fields and the intuition that increasing either positive or negative information --- specifying that fields are either definite... |

117 | Type Inference for Record Concatenation and Multiple Inheritance
- Wand
- 1989
(Show Context)
Citation Context ...ind system, plus the restriction that the set of field labels is finite, enabled him to use ordinary unification as in ML [8] to do type inference for programs involving extensible records. Both Wand =-=[28]-=- and R'emy [21, 22] later extended this system to infinite label sets. More recently, Cardelli and Mitchell [4, 5] discovered an elegant calculus of primitive record operations combining bounded quant... |

68 |
F-bounded quantification for object-oriented programming
- Canning, Cook, et al.
- 1989
(Show Context)
Citation Context ... Members of the ABEL group have argued persuasively that "bounded quantification does not provide the same degree of flexibility in the presence of recursive types as it does for non-recursive ty=-=pes" [1, 7]-=-. They consider two classes of situations in which problems arise, one when the recursion variable occurs negatively, the other when it occurs positively. To deal with these problems, they propose an ... |

49 | ML with extended pattern matching and subtypes
- Jategaonkar, Mitchell
- 1988
(Show Context)
Citation Context ...ML type inference and introduced the notion of "row variables," which allow types to be given to terms involving a natural record extension operator. This work was refined by Jategaonkar and=-= Mitchell [12, 13]-=- and Stansifer [24]. R'emy [20] introduced the notion of positive and negative information about record fields and the intuition that increasing either positive or negative information --- specifying ... |

38 |
Coercion and type inference (summary
- Mitchell
- 1984
(Show Context)
Citation Context ...Cardelli and Wegner [6] extended this idea to a powerful second-order type system combining Cardelli's ordering on record types with type quantification [9, 23] using techniques developed by Mitchell =-=[17]. Wand [25-=-, 26] analyzed the concept of record polymorphism in the context of ML type inference and introduced the notion of "row variables," which allow types to be given to terms involving a natural... |

32 |
Type inference in a database programming language
- Ohori, Buneman
- 1988
(Show Context)
Citation Context ...omponent of a merge has a given field, leading to problems in type reconstruction. Ohori and Buneman studied type inference for object-oriented programming [18] and for database programming languages =-=[19] --- -=-another promising application area for record type systems. In their work on database programming languages they consider a type system including records and sets, with operations such as "relati... |

28 | Static Type Inference for Parametric Classes
- Ohori, Buneman
- 1989
(Show Context)
Citation Context ... the type checker must keep track of which component of a merge has a given field, leading to problems in type reconstruction. Ohori and Buneman studied type inference for object-oriented programming =-=[18]-=- and for database programming languages [19] --- another promising application area for record type systems. In their work on database programming languages they consider a type system including recor... |

27 |
Type inference with subtypes
- Stansifer
- 1988
(Show Context)
Citation Context ...ntroduced the notion of "row variables," which allow types to be given to terms involving a natural record extension operator. This work was refined by Jategaonkar and Mitchell [12, 13] and =-=Stansifer [24]-=-. R'emy [20] introduced the notion of positive and negative information about record fields and the intuition that increasing either positive or negative information --- specifying that fields are eit... |

26 |
Type inference for objects with instance variables and inheritance
- WAND
- 1994
(Show Context)
Citation Context ...b = ((x:l b )nl a jj la = (not x:l b :l a )) Cardelli and Mitchell's formulation of this function, which relies on extraction types like a:l, is somewhat shorter. 3.2 Object-Oriented Programming Wand =-=[25, 26, 27, 28]-=- has shown how a simple form of object-oriented programming may be modeled in an extension of ML [14, 16] with record concatenation and recursive types. An analogous construction can be made in an ext... |

14 |
Extensible records without subsumption
- Harper, Pierce
- 1990
(Show Context)
Citation Context ...subtype of a type lacking l." The restriction operator n is used to increase negative information; for example, if r is the record type fl 1 :t 1 g, then rnl 2 is a subtype of r. In an earlier re=-=port [10]-=-, we set out to represent positive and negative information as directly as possible, using explicit constraints on record type variables rather than encoding constraints in a preorder structure on typ... |

10 |
Alg`ebres Touffues. Application au Typage Polymorphe des Objects Enregistrements dans les Langages Fonctionnels. Th`ese de doctorat, Universit'e de Paris 7
- R'emy
- 1990
(Show Context)
Citation Context ...s the restriction that the set of field labels is finite, enabled him to use ordinary unification as in ML [8] to do type inference for programs involving extensible records. Both Wand [28] and R'emy =-=[21, 22]-=- later extended this system to infinite label sets. More recently, Cardelli and Mitchell [4, 5] discovered an elegant calculus of primitive record operations combining bounded quantification with posi... |

7 |
Operations on records (summary
- Cardelli, Mitchell
- 1992
(Show Context)
Citation Context ... as in ML [8] to do type inference for programs involving extensible records. Both Wand [28] and R'emy [21, 22] later extended this system to infinite label sets. More recently, Cardelli and Mitchell =-=[4, 5]-=- discovered an elegant calculus of primitive record operations combining bounded quantification with positive and negative information about fields and generalizing Cardelli's original subtype orderin... |

3 |
Typechecking records in a natural extension of ML
- R'emy
- 1990
(Show Context)
Citation Context ...s the restriction that the set of field labels is finite, enabled him to use ordinary unification as in ML [8] to do type inference for programs involving extensible records. Both Wand [28] and R'emy =-=[21, 22]-=- later extended this system to infinite label sets. More recently, Cardelli and Mitchell [4, 5] discovered an elegant calculus of primitive record operations combining bounded quantification with posi... |