Objects and Classes, Co-Algebraically

The coalgebraic perspective on objects and classes in object-oriented programming is elaborated: objects consist of a (unique) identifier, a local state, and a collection of methods described as a coalgebra; classes are coalgebraic (behavioural) specifications of objects. The creation of a ``new'''' object of a class is described in terms of the terminal coalgebra satisfying the specification. We present a notion of ``totally specified'''' class, which leads to particularly simple terminal coalgebras. We further describe local and global operational semantics for objects. Associated with the local operational semantics is a notion of bisimulation (for objects belonging to the same class), expressing observational indistinguishability.

[1]  Peter Wegner,et al.  Concepts and paradigms of object-oriented programming , 1990, OOPS.

[2]  Joseph A. Goguen,et al.  Types as theories , 1991 .

[3]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[4]  Pierre America,et al.  Designing an Object-Oriented Programming Language with Behavioural Subtyping , 1990, REX Workshop.

[5]  Horst Reichel,et al.  An approach to object semantics based on terminal co-algebras , 1995, Mathematical Structures in Computer Science.

[6]  Jens Palsberg,et al.  Foundations of object-oriented languages , 1994, SIGP.

[7]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[8]  R. Cockett,et al.  Strong categorical datatypes I , 1991 .

[9]  Carl A. Gunter,et al.  In handbook of theoretical computer science , 1990 .

[10]  Benjamin C. Pierce,et al.  Simple type-theoretic foundations for object-oriented programming , 1994, Journal of Functional Programming.

[11]  José Meseguer,et al.  Initiality, induction, and computability , 1986 .

[12]  Samuel N. Kamin Final Data Types and Their Specification , 1983, TOPL.

[13]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[14]  Martin Hofmann,et al.  A unifying type-theoretic framework for objects , 1994, Journal of Functional Programming.

[15]  Timothy A. Budd,et al.  An introduction to object-oriented programming , 1991 .

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

[17]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[18]  Bart Jacobs,et al.  Inheritance and Cofree Constructions , 1996, ECOOP.

[19]  WegnerPeter Concepts and paradigms of object-oriented programming , 1990 .

[20]  Jan J. M. M. Rutten,et al.  On the Foundation of Final Semantics: Non-Standard Sets, Metric Spaces, Partial Orders , 1992, REX Workshop.

[21]  Anton Eliëns Principles of Object-Oriented Software Development , 1994 .

[22]  Luca Cardelli,et al.  On Binary Methods , 1995, Theory Pract. Object Syst..

[23]  William R. Cook,et al.  Object-Oriented Programming Versus Abstract Data Types , 1990, REX Workshop.

[24]  Peter Aczel,et al.  A Final Coalgebra Theorem , 1989, Category Theory and Computer Science.

[25]  Răzvan Diaconescu,et al.  Hiding and behaviour: an institutional approach , 1994 .

[26]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

[27]  Bart Jacobs,et al.  Mongruences and Cofree Coalgebras , 1995, AMAST.