Skip to main content

Classifying inheritance mechanisms in concurrent object-oriented programming

  • Conference paper
  • First Online:
Book cover ECOOP’98 — Object-Oriented Programming (ECOOP 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1445))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.

    Google Scholar 

  2. G. Agha, P. Wegner, and A. Yonezawa. Proceedings of the ACM SIGPLAN workshop on object-based concurrent programming. SIGPLAN Notices, 24(4), 1989.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. D. Caromel. Toward a method of object-oriented concurrent programming. Communications of the ACM, 36(9):90–101, September 1993.

    Article  Google Scholar 

  8. W. Cook, W. Hill, and P. Canning. Inheritance is not subtyping. In Proceedings of POPL'90, pages 125–135, San Francisco, California, January 1990.

    Google Scholar 

  9. W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In OOPSLA '89, pages 433–443, New Orleans, 1989. ACM Press.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. L. Crnogorac, A. Rao, and K. Ramamohanarao. Inheritance anomaly — a formal treatment. In FMOODS'97, pages 319–334, England, July 1997. Chapman & Hall.

    Google Scholar 

  12. D. Decouchant et. al. A synchronization mechanism for typed objects in a distributed system. SIGPLAN Notices, 24(4):105–107, April 1989.

    Article  Google Scholar 

  13. S. Ferenczi. Guarded methods vs. inheritance anomaly — inheritance anomaly solved by nested guarded method calls. SIGPLAN Notices, 30(2):49–58, February 1995.

    Article  Google Scholar 

  14. G. Florijn. Object protocols as functional parsers. In Proceedings of ECOOP'95, LNCS 952, pages 351–373, Aarhus, Denmark, August 1995. Springer-Verlag.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall International Series in Computer Science. Prentice-Hall, 1985.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. B. Liskov and J. M. Wing. A behavioral notion of subtyping. TOPLAS, 16(6):1811–1841, 1994.

    Article  Google Scholar 

  20. 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.

    Google Scholar 

  21. Z. Manna. Mathematical Theory of Computation. McGraw-Hill, 1974.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. C. McHale. Synchronisation in COO Languages: Expressive Power, Genericity and Inheritance. PhD dissertation, Trinity College, 1994.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. C. Neusius. Synchronising actions. In Proceedings of ECOOP'91, LNCS 512, pages 118–132, Geneva, Switzerland, July 1991. Springer-Verlag.

    Google Scholar 

  27. A. Poggi. Interface methods: a means for the integration of inheritance in a concurrent OOP language. Informatica, 20:125–134, 1996.

    Google Scholar 

  28. A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA '86, pages 38–45. ACM Press, September 1986.

    Google Scholar 

  29. L. Thomas. Inheritance anomaly in true concurrent object oriented languages: A proposal. In IEEE TENCON'94, pages 541–545, August 1994.

    Google Scholar 

  30. C. Tomlinson and V. Singh. Inheritance and synchronization with enabled-sets. In Proceedings of OOPSLA '89, pages 103–112, New Orleans, 1989. ACM Press.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eric Jul

Rights and permissions

Reprints 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

Publish with us

Policies and ethics