Abstract
Inheritance is one of the key concepts in object-oriented programming. However, the usefulness of inheritance in concurrent object-oriented programming is greatly reduced by the problem of inheritance anomaly. Inheritance anomaly is manifested by undesirable re-definitions of inherited code. The problem is aggravated by the lack of a formal analysis, with a multitude of differing proposals and conflicting opinions causing the current state of research, and further directions, to be unclear. In this paper we present a formal analysis of inheritance anomaly in concurrent object-oriented programming. Starting from a formal definition of the problem we develop a taxonomy of the anomaly, and use it to classify the various proposals. As a result, the major ideas, trends and limitations of the various proposals are clearly exposed. Formal analysis of the anomaly and a thorough exposition of its causes and implications are the pre-requisites for a successful integration of inheritance and concurrency.
Preview
Unable to display preview. Download preview PDF.
References
G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
G. Agha, P. Wegner, and A. Yonezawa. Proceedings of the ACM SIGPLAN workshop on object-based concurrent programming. SIGPLAN Notices, 24(4), 1989.
M. Aksit, J. Bosch, W. van der Sterren, and L. Bergmans. Real-time specification inheritance anomalies and real-time filters. In Proceedings of ECOOP'94, LNCS 821, pages 386–407, Bologna,Italy, July 1994. Springer-Verlag.
P. America. Designing an object-oriented programming language with behavioural subtyping. In Foundations of Object-Oriented Languages, LNCS 489, pages 60–90, Noordwijkerhout, The Netherlands, June 1990. Springer-Verlag.
C. Baquero, R. Oliveira, and F. Moura. Integration of concurrency control in a language with subtyping and subclassing. In USENIX Conference on Object-Oriented Technologies (COOTS'95), Monterey, California, USA, June 1995.
M.Y. Ben-Gershon and S.J. Goldsack. Using inheritance to build extendable synchronisation policies for concurrent and distributed systems. In TOOLs Pacific '95, pages 109–121, Melbourne,Australia, November 1995. Prentice-Hall.
D. Caromel. Toward a method of object-oriented concurrent programming. Communications of the ACM, 36(9):90–101, September 1993.
W. Cook, W. Hill, and P. Canning. Inheritance is not subtyping. In Proceedings of POPL'90, pages 125–135, San Francisco, California, January 1990.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In OOPSLA '89, pages 433–443, New Orleans, 1989. ACM Press.
L. Crnogorac, A. Rao, and K. Ramamohanarao. Analysis of inheritance mechanisms in agent-oriented programming. In Proceedings of IJCAI'97, pages 647–652, Nagoya, Japan, August 1997. Morgan Kaufmann Publishers.
L. Crnogorac, A. Rao, and K. Ramamohanarao. Inheritance anomaly — a formal treatment. In FMOODS'97, pages 319–334, England, July 1997. Chapman & Hall.
D. Decouchant et. al. A synchronization mechanism for typed objects in a distributed system. SIGPLAN Notices, 24(4):105–107, April 1989.
S. Ferenczi. Guarded methods vs. inheritance anomaly — inheritance anomaly solved by nested guarded method calls. SIGPLAN Notices, 30(2):49–58, February 1995.
G. Florijn. Object protocols as functional parsers. In Proceedings of ECOOP'95, LNCS 952, pages 351–373, Aarhus, Denmark, August 1995. Springer-Verlag.
S. Frølund. Inheritance of synchronization constraints in concurrent object-oriented programming languages. In Proceedings of ECOOP'92, LNCS 615, pages 185–196, Utrecht, The Netherlands, June 1992. Springer-Verlag.
C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall International Series in Computer Science. Prentice-Hall, 1985.
D. G. Kafura and K. H. Lee. Inheritance in Actor based concurrent object-oriented languages. In ECOOP'89, pages 131–145, UK, 1989. Cambridge University Press.
U. Lechner, C. Lengauer, F. Nickl, and M. Wirsing. How to overcome the inheritance anomaly. In ECOOP'96, LNCS 1098, Linz, Austria, 1996. Springer-Verlag.
B. Liskov and J. M. Wing. A behavioral notion of subtyping. TOPLAS, 16(6):1811–1841, 1994.
C. Lopes and K. Lieberherr. Abstracting process-to-function relations in concurrent object-oriented applications. In Proceedings of ECOOP'94, LNCS 821, pages 81–99, Bologna, Italy, July 1994. Springer-Verlag.
Z. Manna. Mathematical Theory of Computation. McGraw-Hill, 1974.
S. Matsuoka, K. Wakita, and A. Yonezawa. Synchronization constraints with inheritance: What is not possible — so what is? Technical Report 10, University of Tokyo, 1990.
S. Matsuoka and A. Yonezawa. Analysis of inheritance anomaly in object-oriented concurrent programming languages. In Research Directions in COOP, chapter 1, pages 107–150. MIT Press, 1993.
C. McHale. Synchronisation in COO Languages: Expressive Power, Genericity and Inheritance. PhD dissertation, Trinity College, 1994.
J. Meseguer. Solving the inheritance anomaly in concurrent object-oriented programming. In Proceedings of ECOOP'93, LNCS 707, pages 220–246, Kaiserlautern, Germany, July 1993. Springer-Verlag.
C. Neusius. Synchronising actions. In Proceedings of ECOOP'91, LNCS 512, pages 118–132, Geneva, Switzerland, July 1991. Springer-Verlag.
A. Poggi. Interface methods: a means for the integration of inheritance in a concurrent OOP language. Informatica, 20:125–134, 1996.
A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA '86, pages 38–45. ACM Press, September 1986.
L. Thomas. Inheritance anomaly in true concurrent object oriented languages: A proposal. In IEEE TENCON'94, pages 541–545, August 1994.
C. Tomlinson and V. Singh. Inheritance and synchronization with enabled-sets. In Proceedings of OOPSLA '89, pages 103–112, New Orleans, 1989. ACM Press.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Crnogorac, L., Rao, A.S., Ramamohanarao, K. (1998). Classifying inheritance mechanisms in concurrent object-oriented programming. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054108
Download citation
DOI: https://doi.org/10.1007/BFb0054108
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64737-9
Online ISBN: 978-3-540-69064-1
eBook Packages: Springer Book Archive