OPUS: a Formal Approach to Object-Orientation

OPUS is an elementary calculus that models object-orientation. It expresses in a direct way the crucial features of object-oriented programming such as objects, encapsulation, message passing and incremental modification. This is illustrated by numerous examples. Thanks to the way objects are constructed in this calculus, we can deal with self-reference, recursion and even mutual recursion in a straightforward way. We also illustrate that it is relatively easy to model different kinds of inheritance mechanisms. Finally, we argue to which extent our calculus can be used for modeling and investigating object-oriented concepts.

[1]  Martín Abadi,et al.  A Theory of Primitive Objects - Scond-Order Systems , 1994, ESOP.

[2]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[3]  Oscar Nierstrasz,et al.  Towards and Object Calculus , 1991, Object-Based Concurrent Computing.

[4]  William R. Cook,et al.  Interfaces for strongly-typed object-oriented programming , 1989, OOPSLA '89.

[5]  Oscar Nierstrasz,et al.  A Survey of Object-Oriented Concepts , 1989, Object-Oriented Concepts, Databases, and Applications.

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

[7]  Benjamin C. Pierce A Model of Delegation Based on Existential Types , 1993 .

[8]  Benjamin C. Pierce,et al.  Object-oriented programming without recursive types , 1993, POPL '93.

[9]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[10]  Theo D'Hondt,et al.  Nested Mixin-Methods in Agora , 1993, ECOOP.

[11]  Giuseppe Castagna,et al.  A calculus for overloaded functions with subtyping , 1992, LFP '92.

[12]  William R. Cook,et al.  Interfaces for strongly-typed object-oriented programming , 1989, OOPSLA 1989.

[13]  Oscar Nierstrasz,et al.  Towards an Object Calculus ∗ , 1991 .

[14]  Giuseppe Castagna,et al.  A calculus for overloaded functions with subtyping, extended abstract , 1992 .

[15]  Won Kim,et al.  Object-Oriented Concepts, Databases, and Applications , 1989 .

[16]  Stanley B. Zdonik,et al.  Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like , 1988, ECOOP.