Foundations for Extensible Objects with Roles

Object-oriented database systems are an emerging, promising technology, underpinned by the integration of ideas from object-oriented languages along with the specific needs of database applications. The fundamental reason for using such systems is that any real-world entity can be modeled by one object which matches its structure and behavior. To this end, the standard notion of object must be augmented so that it can model the fact that an entity may acquire new pieces of structure and behavior during its existence without changing its identity. To allow this extensibility in a statically typed system, a notion of context-dependent behavior (role playing) must be added to the basic features of object-oriented languages. This feature is also a useful modeling device. Languages with role mechanisms have already been proposed. However, their design is full of choices which cannot be easily justified. A strong foundation for the object-with-roles notion would be extremely helpful to justify these choices and to understand, and prove, the properties of such a mechanism. In this paper we describe such a foundation, building on the object model proposed by Abadi and Cardelli.

[1]  Jon G. Riecke,et al.  Privacy via Subsumption , 2002, Inf. Comput..

[2]  Michael Schrefl,et al.  Extending object-oriented systems with roles , 1996, TOIS.

[3]  Luigi Liquori,et al.  A Framework for Defining Object-Calculi , 1999, World Congress on Formal Methods.

[4]  Elisa Bertino,et al.  Objects with Multiple Most Specific Classes , 1995, ECOOP.

[5]  Renzo Orsini,et al.  An Object Data Model with Roles , 1993, VLDB.

[6]  John C. Mitchell,et al.  A lambda calculus of objects and method specialization , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[7]  Elke A. Rundensteiner Multiview: A Methodology for Supporting Multiple Views in Object-Oriented Databases , 1992, VLDB.

[8]  Giuseppe Castagna,et al.  Covariance and contravariance: conflict without a cause , 1995, TOPL.

[9]  Giorgio Ghelli,et al.  A Class Abstraction for a Hierarchical Type System , 1990, ICDT.

[10]  Giorgio Ghelli A static type system for message passing , 1991, OOPSLA 1991.

[11]  John C. Mitchell,et al.  Theoretical aspects of object-oriented programming: types, semantics, and language design , 1994, Choice Reviews Online.

[12]  John C. Mitchell,et al.  The Development of Type Systems for Object-Oriented Languages , 1995, Theory Pract. Object Syst..

[13]  Didier Rémy From Classes to Objects via Subtyping , 1998, ESOP.

[14]  Luca Cardelli,et al.  Operations on Records , 1989, Mathematical Foundations of Programming Semantics.

[15]  Viviana Bono,et al.  An Imperative, First-Order Calculus with Object Extension , 1998, ECOOP.

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

[17]  Giorgio Ghelli,et al.  Extensible Objects for Database Evolution: Language Features and Implementation Issues , 1995, DBPL.

[18]  John C. Mitchell,et al.  A Delegation-based Object Calculus with Subtying , 1995, FCT.

[19]  James McKinna,et al.  Pure Type Systems Formalized , 1993, TLCA.

[20]  Luigi Liquori An Extended Theory of Primitive Objects: FIrst Order System , 1997, ECOOP.

[21]  Michele Bugliesi,et al.  Subtyping Constraints for Incomplete Objects (Extended Abstract) , 1997, TAPSOFT.

[22]  Giuseppe Castagna,et al.  A Semantics for Lambda&-early: A Calculus with Overloading and Early Binding , 1993, TLCA.

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

[24]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

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

[26]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.

[27]  Giuseppe Castagna,et al.  A Calculus for Overloaded Functions with Subtyping , 1995, Inf. Comput..

[28]  Luigi Liquori,et al.  A lambda calculus of objects with self-inflicted extension , 1998, OOPSLA '98.