Abstract
A categorial semantic domain for objects is presented in order to clarify both aggregation and specialization. Three kinds of specialization are discussed: (1) subtyping (specialization with no side effects and no non-monotonic overriding); (2) monotonic specialization (possibly with side effects but still only with monotonic overriding); and (3) non-monotonic specialization (possibly with side effects and non-monotonic overriding). A sequence of three categories of objects differing only in the morphisms is presented. The first one is used to explain object aggregation (respecting locality through a frame constraint) and the strictest form of specialization (subtyping). The second category is shown to be adequate for explaining specialization with side effects (by relaxing the frame constraint). Finally, the third category supports also non-monotonic overriding, by adopting as morphisms suitable partial morphisms of the second one. All these categories are complete and cocomplete. Colimits are used for explaining the semantics of aggregation and multiple inheritance.
Similar content being viewed by others
References
[Adámek et al 90] Adámek, J., Herrlich, H., Strecker, G.: Abstract and concrete categories. New York: Wiley 1990
[Butterworth et al. 91] Butterworth, P., Otis, A., Stein, J.: The GemStone object database management system. Commun. ACM34, 64–77 (1991)
[Brass and Lipeck] Brass, S., Lipeck, U.: Semantics of inheritance in logical object specifications. Proc. of the 2nd International Conference on Deductive and Object-Oriented Data-bases (DOOD'91), 1991 (to appear)
[Costa 89] Costa, J.F.: Teoria algébrica dos processos animados. MSc Thesis, available as a technical report, Universidade Técnica de Lisboa, September 1989
[Costa and Sernadas A 90a] Costa, J.F., Sernadas, A.: Process models within a categorial framework. The INESC Journal of Research and Development,4(1), 83–93 (1993)
[Costa and Sernadas A 90b] Costa, J.F., Sernadas, A.: Progress assumption in concurrent systems. Formal Aspects of Computing, Springer, accepted for publication.
[Costa et al 92] Costa, J.F., Sernadas, A., Sernadas, C., Ehrich, H.-D.: Object interaction. Mathematical Foundations of Computer Science (Lect. Notes Comput. Sci., vol. 629, pp. 200–208) Berlin, Heidelberg, New York: Springer 1992
[Dahl 67] Dahl, O.-J., Myhrhaug, B., Nygaard, K.: SIMULA 67, Common base language. Oslo: Norwegian Computer Center 1967
[Deux et al. 91] Deux, O. et al.: The O2 system. Commun. ACM34, 35–48 (1991)
[Ehrich et al. 90] Ehrich, H.-D., Sernadas, A., Sernadas, C.: From data types to object types. J. Inf. Process. Cybern.26(1/2), 33–48 (1990)
[Ehrich et al. 91] Ehrich, H.-D., Goguen, J., Sernadas, A.: A categorial theory of objects as observed processes. In: de Bakker, J.W., de Roever, W.P., Rozenberg, G. (eds) Proc. of the REX90/Workshop on Foundations of Object-Oriented Languages. (Lect. Notes Comput. Sci., vol. 489, pp. 203–228) Berlin, Heidelberg, New York: Springer 1991
[Ehrich et al 92] Ehrich, H.-D., Gogolla, M., Sernadas, A.: Objects and their specifications. In: Bidoit, M., Choppy, C. (eds.) Recent trends in data type specification: 8th Workshop on Specification of Abstract Data Types. Selected papers. (Lect. Notes Comput. Sci., vol. 655, pp. 40–65) Berlin, Heidelberg, New York: Springer 1992
[Ehrich and Sernadas A 90] Ehrich, H.-D., Sernadas, A.: Algebraic implementation of objects over objects. In: de Bakker, J., de Roever, W.-P., Rozenberg, G. (eds) Proc. of the REX Workshop on Stepwise Refinement of Distributed Systems: Models, Formalisms, Correctness, pp. 239–266. Berlin, Heidelberg, New York: Springer 1990
[Ehrich and Sernadas A 91] Ehrich, H.-D., Sernadas, A.: Object concepts and constructions. In: Saake, G., Sernadas, A. (eds) Proc of the IS-CORE Workshop'91 (Informatik-Berichte 91-03) Tech. Univ. Braunschweig, 1991, pp. 1–24
[Fiadeiro et al. 91] Fiadeiro, J., Sernadas, C., Maibaum, T., Saake, G.: Proof-theoretic semantics of object-oriented specification constructs. In: Meersman, R., Kent, W., Khosla, S. (eds.) Object-oriented databases: analysis, design and construction, pp. 243–284. Amsterdam: North Holland 1991
[Fishman et al. 87] Fishman, D. et al.: IRIS: an object-oriented database management system. ACM Trans. Off. Inf. Syst.5 (1987)
[Goldberg and Robson 83] Goldberg, A., Robson, D.: Smalltalk 80: the language and its implementation. New York: Addison-Wesley 1983
[Goguen 91] Goguen, J.: Types as theories. Proc. Conf. on Topology and Category Theory in Computer Science, pp. 357–390. Oxford: Oxford University Press 1991
[Heitz 88] Heitz, M.: HOOD: a hierarchical object-oriented design method. Proc. of the 3rd German Ada Users Congress, Munich 1988, 12-1–12-9
[Hoare 85] Hoare, C.A.R.: Communicating sequential processes. Englewood Cliffs, N.J.: Prentice-Hall 1985
[Jonsson 85] Jonsson, B.: A model and proof system for asynchronous networks. In: Proc. of the 4th Annual ACM Symposium on Principles on Distributed Computing. Minaki, Canada, 1985, pp. 49–58
[Jonsson 89] Jonsson, B.: A fully abstract trace model for dataflow networks. In: Proc. of the 16th Annual ACM Symposium on Principles of Programming Languages, 1989, pp. 155–165
[Jungclaus et al. 91] Jungclaus, R., Saake, G., Hartmann, T., Sernadas, C.: Object-oriented specification of information systems: the TROLL language (Informatik-Berichte) Tech. Univ. Braunschweig, 1991
[Kim et al. 88] Kim, W. et al.: Features of the ORION object-oriented DBMS. In: Kim, W., Lochovsky, E.H. (eds.) Object-oriented concepts, databases, and applications. Reading, MA: Addison-Wesley 1988
[Kerth 88] Kerth, N.: MOOD: a methodology for structured object-oriented design. Tutorial presented at OOPSALA'88. San Diego, 1988
[Lukaszewicz 88] Lukaszewicz, W.: Non-monotonic reasoning. Chichester: Ellis Horwood 1990
[Meyer 88] Meyer, B.: Object-oriented software construction. Englewood Cliffs: Prentice-Hall 1988
[E. Seidewitz and M. Stark 86] Seidewitz, E., Stark, M.: General object-oriented software development. Document No. SEL-86-002, NASA Goddard Space Flight Center, Greenbelt, Maryland, 1986
[Sernadas A et al. 89] Sernadas, A., Fiadeiro, J., Sernadas, C., Ehrich, H.-D.: Basic building blocks of information systems. In:Falkenberg, E., Lindgreen, P. (eds.) Information system concepts: an in-depth analysis, pp. 225–246. Amsterdam: North-Holland 1989
[Sernadas A and Ehrich 90] Sernadas, A., Ehrich, H.-D.: What is an object, after all. In: Meersman, R., Kent, W., Khosla, S. (eds.) Object-oriented databases: analysis, design and construction, pp. 39–69. Amsterdam: North-Holland 1991
[Sernadas A et al 90] Sernadas, A., Ehrich, H.-D., Costa, J.-F.: From processes to objects. INESC J. Res. Dev.1(1), 7–27 (1990)
[Sernadas C et al. 91] Sernadas, C., Resende, P., Gouveia, P., Sernadas, A.: In-the-large object-oriented design of information systems. In: van Assche, F., Moulin, B., Rolland, C. (eds.) Object-oriented approach in information systems, pp. 209–232. Amsterdam: North-Holland 1991
[Sernadas C et al. 92] Sernadas, C., Gouveia, P., Gouveia, J., Sernadas, A., Resende, P.: The reification dimension in object-oriented data base design. In: Harper, D., Norrie, M. (eds.) Specification of data base systems, pp. 275–299, Berlin, Heidelberg, New York: Springer 1992
[Stroustrup 86] Stroustrup, B.: The C++ programming language. Reading, MA: Addison-Wesley 1986
[Wegner 89] Wegner, P.: Learning the language. Byte14, 245–253 (1989)
[Winskel 84] Winskel, G.: Synchronization trees. Theor. Comput. Sci.34, 45–77 (1984)
[Winskel 89] Winskel, G.: An introduction to event structures. In: de Bakker, J.W., de Roever, W.P., Rozenberg, G. (eds.) Linear time, branching time and partial order in logics and models for concurrency (Lect. Notes Comput. Sci., vol. 354, pp. 364–397) Berlin, Heidelberg, New York: Springer 1989
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Costa, J.F., Sernadas, A. & Sernadas, C. Object inheritance beyond subtyping. Acta Informatica 31, 5–26 (1994). https://doi.org/10.1007/BF01178920
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF01178920