Orthogonal type extensions and reductions

In this paper we present a generalization of Oberon's record type extensions. Our extension mechanism is orthogonally applicable to all the conventional data types found in Pascal-like languages. In order to balance the type system, we present an inverse concept, type reductions, that also can be applied to all the programmer-defined data types. These concepts provide flexible and powerful means for expressing universal subtyping and supertyping in a statically-typed programming language, as well as many possibilities for reuse of data types via a sound mathematical characterization of assignment statements. The presented ideas are under implementation in Alberich, a programming language that can be considered as a natural descendant of Oberon.

[1]  Niklaus Wirth,et al.  From modula to oberon , 1988, Softw. Pract. Exp..

[2]  Luca Cardelli,et al.  Structural subtyping and the notion of power type , 1988, POPL '88.

[3]  Niklaus Wirth,et al.  Type extensions , 1988, TOPL.

[4]  Niklaus Wirth,et al.  The programming language oberon , 1988, Softw. Pract. Exp..

[5]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[6]  Kim B. Bruce,et al.  A modest model of records, inheritance and bounded quantification , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[7]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

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

[9]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[10]  Luca Cardelli,et al.  The Modula–3 type system , 1989, POPL '89.

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

[12]  Ryan Stansifer,et al.  Type inference with subtypes , 1988, POPL '88.

[13]  Hanspeter Mössenböck,et al.  Object Oberon - A Modest Object-Oriented Language , 1989, Struct. Program..