Hostname: page-component-78c5997874-j824f Total loading time: 0 Render date: 2024-11-19T10:20:30.139Z Has data issue: false hasContentIssue false

A Coalgebraic Semantics of Subtyping

Published online by Cambridge University Press:  15 April 2002

Erik Poll*
Affiliation:
Department of Computer Science, University of Nijmegen, P.O. Box 9010, 6500 GL Nijmegen, The Netherlands.
Get access

Abstract

Coalgebras have been proposed as formal basis for the semantics of objects in the sense of object-oriented programming. This paper shows that this semantics provides a smooth interpretation for subtyping, a central notion in object-oriented programming. We show that different characterisations of behavioural subtyping found in the literature can conveniently be expressed in coalgebraic terms. We also investigate the subtle difference between behavioural subtyping and refinement.

Keywords

Type
Research Article
Copyright
© EDP Sciences, 2001

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

M. Abadi and L. Cardelli, A Theory of Objects. Springer, Monogr. Comput. Sci. (1996).
P. America, Inheritance and Subtyping in a Parallel Object-Oriented Language, in ECOOP'87, edited by J. Bezivin et al.. Springer, Lecture Notes in Comput. Sci. 276 (1987) 232-242.
P. America, Designing an Object-Oriented Languages with Behavioural Subtyping, in Foundations of Object Oriented Languages, edited by J.W. de Bakker et al.. Springer, Lecture Notes in Comput. Sci. 489 (1991) 60-90.
H. Bowman, C. Briscoe-Smith, J. Derrick and B. Strulo, On Behavioural Subtyping in LOTOS, in FMOODS'97, Second IFIP International Conference on Formal Methods for Open Object-based Distributed Systems, edited by H. Bowman and J. Derrick. Chapman and Hall (1997) 335-351.
Bruce, K.B., Cardelli, L. and Castagna, G., The Hopkins Objects Group (J. Eifrig, S. Smith, V. Trifonov), in On Binary Methods, edited by G.T. Leavens and B.C. Pierce. Theory and Practice of Object Systems 1 (1996) 221-242.
Cardelli, L. and Wegner, P., On understanding types, data abstraction and polymorphism. Computing Surveys 17 (1985) 471-522. CrossRef
Y. Chen and B.H.C. Cheng, A semantic foundation for specification matching, in Foundations of Component-Based Systems, edited by G.T. Leavens and M. Sitaraman. Cambridge University Press (2000) Chap. 5, 91-109.
W.R. Cook, W.L. Hill and P.S. Canning, Inheritance is not subtyping, in Principles of Programming Languages (POPL). ACM (1990) 125-135.
K.K. Dhara and G.T. Leavens, Forcing behavioral subtyping through specification inheritance, in Proc. 18th International Conference on Software Engineering, Berlin, Germany. IEEE (1996) 258-267.
C.A. Gunter and J.C. Mitchell, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design. The MIT Press (1994).
U. Hensel, M. Huisman, B. Jacobs and H. Tews, Reasoning about classes in object-oriented languages: Logical models and tools, in European Symposium on Programming (ESOP), edited by Ch. Hankin. Springer, Lecture Notes in Comput. Sci. 1381 (1998) 105-121.
Hoare, C.A.R., Proof of Correctness of Data Representations. Acta Informatica 1 (1972) 271-281. CrossRef
Hofmann, M. and Pierce, B.C., A unifying type-theoretic framework for objects. J. Funct. Programming 5 (1995) 593-635. CrossRef
B. Jacobs, Invariants, bisimulations and the correctness of coalgebraic refinements, in Algebraic Methodology and Software Technology (AMAST'97), edited by M. Johnson. Springer, Lecture Notes in Comput. Sci. (1997) 276-291.
Jacobs, B. and Rutten, J., A tutorial on (co)algebras and (co)induction. EATCS Bull. 62 (1997) 222-259.
Leavens, G.T. and Pigozzi, D., A complete algebraic characterization of behavioral subtyping. Acta Informatica 36 (2000) 617-663. CrossRef
Leavens, G.T. and Weihl, W.E., Specification and verification of object-oriented programs using supertype abstraction. Acta Informatica 32 (1995) 705-778. CrossRef
B.H. Liskov, Data abstraction and hierarchy. SIGPLAN Notices 23 (1988).
Liskov, B.H. and Wing, J.M., A behavioral notion of subtyping. TOPLAS 16 (1994) 1811-1841. CrossRef
Maung, I., On simulation, subtyping and substitutability in sequential object systems. Formal Aspects of Computing 7 (1995) 620-651. CrossRef
B. Meyer, Object-Oriented Software Construction. Prentice Hall, 2nd Rev. Edition (1997).
J.C. Mitchell, Toward a typed foundation for method specialization and inheritance, in Principles of Programming Languages (POPL). ACM (1990) 109-124.
Pierce, B.C. and Turner, D.N., Simple type-theoretic foundations for object-oriented programming. J. Funct. Programming 4 (1994) 207-247. CrossRef
E. Poll, Subtyping and Inheritance for Categorical Datatypes, in Theories of Types and Proofs (TTP-Kyoto). Kyoto University Research Insitute for Mathematical Sciences, RIMS Lecture Notes 1023 (1997) 112-125.
E. Poll, Behavioural subtyping for a type-theoretic model of objects, in Foundations of Object-Oriented Languages (FOOL5) (1998).
Reichel, H., An approach to object semantics based on terminal co-algebras. Math. Structures Comput. Sci. 5 (1995) 129-152. CrossRef
J. Rutten, Universal co-algebra: A theory of systems, CWI Report 9652. CWI (1996).
Sannella, D. and Tarlecki, A., Essential concepts of algebraic specification and program development. Formal Aspects of Computing 9 (1997) 229-269. CrossRef
Snyder, A., Encapsulation and inheritance in object-oriented programming languages. ACM SIGPLAN 21 (1986) 38-45. OOPSLA '86 Conference Proceedings, edited by N. Meyrowitz. Portland, Oregon (1986). CrossRef