Inheritance and Cofree Constructions

The coalgebraic view on classes and objects is elaborated to include inheritance. Inheritance in coalgebraic specification (of classes) will be understood dually to parametrization in algebraic specification. That is, inheritance involves restriction (specialization), where parametrization involves extension. And cofree constructions are “best” restrictions, like free constructions are “best” extensions. To make this view on inheritance precise we need a suitable notion of behaviour preserving morphism between classes, which will be defined as a “coalgebra map up-to-bisimulation”.

[1]  Jens Palsberg,et al.  Object-oriented type systems , 1994, Wiley professional computing.

[2]  S. Maclane,et al.  Categories for the Working Mathematician , 1971 .

[3]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[4]  José Meseguer,et al.  Universal Realization, Persistent Interconnection and Implementation of Abstract Modules , 1982, ICALP.

[5]  Bart Jacobs,et al.  Objects and Classes, Co-Algebraically , 1995, Object Orientation with Parallelism and Persistence.

[6]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[7]  Robert B. Terwilliger,et al.  Object-oriented programming in Eiffel , 1995 .

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

[9]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and Its Correctness , 1994, Inf. Comput..

[10]  Bart Jacobs Coalgebraic Specifications and Models of Determinatistic Hybrid Systems , 1996, AMAST.

[11]  Hartmut Ehrig,et al.  Equations and initial semantics , 1985 .

[12]  R. Tennant Algebra , 1941, Nature.

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

[14]  Hans-Jörg Schek,et al.  Object Orientation with Parallelism and Persistence , 1996 .

[15]  Joseph A. Goguen,et al.  A categorical manifesto , 1989, Mathematical Structures in Computer Science.

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

[17]  Bjarne Stroustrup,et al.  The C++ programming language (3. ed.) , 1997 .

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

[19]  S. Lane Categories for the Working Mathematician , 1971 .

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

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

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

[23]  Peter Wegner,et al.  The Object-Oriented Classification Paradigm , 1987, Research Directions in Object-Oriented Programming.