Hostname: page-component-78c5997874-v9fdk Total loading time: 0 Render date: 2024-11-05T12:52:30.045Z Has data issue: false hasContentIssue false

An approach to object semantics based on terminal co-algebras

Published online by Cambridge University Press:  04 March 2009

Horst Reichel
Affiliation:
Institut Theoretische Informatik, Fakultät Informatik, TU Dresden, Mommsenstraβe 13, Dresden D-01069, Germany e-mail: [email protected]

Extract

The categorical dual construction of initial abstract data types is studied. The resulting terminal co-algebras represent not only an implementation independent semantics of infinite objects such as streams, but also a suitable formal basis for object types in the sense of the object-oriented programming paradigm. Instances of object types may be interpreted as abstract automata with several state transition functions representing the methods of an object, and several output functions representing the attributes. By structuring the index set of the possibly infinite family of methods, and by structuring the output set, one can specify specific object types. For dealing simultaneously with complex data types and object types, it is not necessary to live within a cartesian closed category. In ccc's there are standard functional constructions for object types, but object types are not necessarily a higher-order construction. A world of data types and object types may be combined with the Rewriting Logic of Meseguer to obtain a formal basis for concurrent object systems.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1995

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

Adamek, J. and Trnkova, V. (1989) Automata and Algebras in Categories, KluwerAcademic Publishers.Google Scholar
Barr, M. (1993) Terminal coalgebras in well-founded set theory. Theoretical Computer Science 114 299315.CrossRefGoogle Scholar
Barr, M. and Wells, C. F. (1985) Triples, Toposes and Theories, Springer, Berlin.CrossRefGoogle Scholar
Cockett, J. R. B. and Fukushima, T. (1992) About Charity. (University of Calgary internal report)Google Scholar
Cockett, J. R. B. and Spencer, D. (1992) Strong categorical data types. In: Seely, R. A. G. (ed.) International Meeting on Category Theory 1991, Canadian Mathematical Society Proceedings, AMS, MontrealGoogle Scholar
Feferman, S. (1992) A new approach to abstract data types, I. Informal development. Math. Struct. in Comp. Science 2 193229.CrossRefGoogle Scholar
Goguen, J. A., Winkler, T., Meseguer, J., Futatsugi, K. and Jouannaud, J.–P. (1992) Introducing OBJ, SRI International, CSR Technical Report.Google Scholar
Hagino, T. (1987) A categorical programming language, Ph.D. thesis, report CST–47–87, Edinburgh University.Google Scholar
Hudak, P., Jones, S. P. and Wadler, P. (eds.) (1991) Report on the Programming Language HASKELL. A non-strict, Purely Functional Language, Version 1.1, Final Draft.CrossRefGoogle Scholar
Mac Lane, S. (1971) Categories for the working mathematician, Springer-Verlag.CrossRefGoogle Scholar
Meseguer, J. (1990) A logical theory of concurrent objects. In: ECOOP-OOPSLA '90 Conference on Object-Oriented Programming, Ottawa, Canada, October 1990, ACM 101–115.CrossRefGoogle Scholar
Meseguer, J. (1992) Multiparadigm Logic Programming. In: Proceedings Algebraic and Logic Programming. Springer-Verlag Lecture Notes in Computer Science 632.CrossRefGoogle Scholar
Milner, R. (1989) Communication and Concurrency, Prentice Hall,Google Scholar
Paulson, L. C. (1991) ML for the Working Programmer, Cambridge University Press.Google Scholar
The RAISE Language Group (1992) The RAISE Specification Language, Prentice Hall.Google Scholar
Reynolds, J. C. (1985) Three Approaches to Type Structure. In: TAPSOFT Proceedings, Vol.1. Springer-Verlag Lecture Notes in Computer Science 186.Google Scholar
Thompson, S. (1991) Type Theory and Functional Programming, Addison-Wesley Publishing Company.Google Scholar
Turner, D. A. (1985) Miranda: a non-strict functional language with polymorphic types. In: Jouannaud, P. (ed.) Functional Programming Languages and Computer Architecture, Springer-Verlag.Google Scholar