skip to main content
10.1145/967900.968159acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
Article

The inheritance anomaly: ten years after

Published:14 March 2004Publication History

ABSTRACT

The term inheritance anomaly was coined in 1993 by Matsuoka and Yonezawa [15] to refer to the problems arising by the coexistence of inheritance and concurrency in concurrent object oriented languages (COOLs). The quirks arising by such combination have been observed since the early eighties, when the first experimental COOLs were designed [3]. In the nineties COOLs turned from research topic to widely used tools in the everyday programming practice, see e.g. the Java [9] experience. This expository paper extends the survey presented in [15] to account for new and widely used COOLs, most notably Java and C# [19]. Specifically, we illustrate some innovative approaches to COOL design relying on the aspect oriented programming paradigm [13] that aim at better, more powerful abstraction for concurrent OOP, and provide means to fight the inheritance anomaly.

References

  1. M. Aksit. On the Design of the Object-Oriented Language Sina. PhD thesis, University of Twente, Enschede, 1989.Google ScholarGoogle Scholar
  2. M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting Object Interactions Using Composition Filters. In Proceedings of the ECOOP'93 Workshop on Object-Based Distributed Programming. LNCS, 791:152--184, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. America. POOL: Design and experience. OOPS Messenger, 2(2):16--20, Apr. 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. N. Benton, L. Cardelli, and C. Fournet. Modern concurrency abstractions for C#. In Proceedings of the 16th European Conference on Object-Oriented Programming (ECOOP). LNCS, 2374:415--440, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. L. Bergmans. Composing Concurrent Objects. PhD thesis, University of Twente, 1994.Google ScholarGoogle Scholar
  6. J.-P. Briot and A. Yonezawa. Inheritance and synchronization in concurrent OOP. In European Conference on Object-Oriented Programming (ECOOP'87). LNCS, 276:32--40, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Compton and R. Walker. A run-time system for SCOOP. Journal of Object Technology, 1(3):119--157, 2002. special issue TOOLS USA 2002 proceedings.Google ScholarGoogle ScholarCross RefCross Ref
  8. C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In Proceedings of the 23rd ACM Symposium on Principles of Programming Languages, pages 372--385. ACM, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification Second Edition. Sun Microsystems, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. A. R. Hoare. Monitors: an operating system structriing concept. Communications of the ACM, 17(10):549--557, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Holmes. Synchronization Rings - Composable Synchronization for Object-Oriented Systems. PhD thesis, Macquarie University, 1999.Google ScholarGoogle Scholar
  12. D. G. Kafura and K. H. Lee. Inheritance in actor-based concurrent object-oriented languages. In S. Cook, editor, Proceedings of ECOOP'89, Nottingham, UK, pages 131--145. Cambridge University Press, 1989.Google ScholarGoogle Scholar
  13. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP'97---Object-Oriented Programming, LNCS, 1241:220--242, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  14. C. V. Lopes and K. J. Lieberherr. Abstracting process-to-function relations in concurrent object-oriented applications. In Proceedings of the 8th European Conference on Object-Oriented Programming (ECOOP), LNCS, 821:81--99, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Matsuoka and A. Yonezawa. Analysis of inheritance anomaly in object-oriented concurrent programming language. In Research Directions in Concurrent Object-Oriented Programming, pages 107--150. 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. K. Mens, C. Lopes, B. Tekinerdogan, and G. Kiczales. Aspect-oriented programming. LNCS, 1357:483--496, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. B. Meyer. Eiffel: The Language. Prentice Hall, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. B. Meyer. Object-Oriented Software Construction. Prentice Hall, second edition, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C# Language Specification. Microsoft Press, 2001.Google ScholarGoogle Scholar
  20. G. Milicia. Applying formal methods to programming language design and implementation. PhD thesis, BRICS -- University of Aarhus, 2003.Google ScholarGoogle Scholar
  21. G. Milicia and V. Sassone. Jeeg: A programming language for concurrent objects synchronization. In Proceeding of JavaGrande/ISSCOPE 2002, pages 212--221, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. G. Milicia and V. Sassone. Jeeg: Temporal constraints for the synchronization of concurrent objects. Technical Report RS-03-6, BRICS, February 2003.Google ScholarGoogle ScholarCross RefCross Ref
  23. A. Pnueli. The temporal logic of programs. In Proceedings of the 18th IEEE Symposium on the Foundations of Computer Science (FOCS-77), pages 46--57, 1977.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. B. Stroustrup. The C++ Programming Language 2nd edition. Addition-Wesley, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The inheritance anomaly: ten years after

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SAC '04: Proceedings of the 2004 ACM symposium on Applied computing
          March 2004
          1733 pages
          ISBN:1581138121
          DOI:10.1145/967900

          Copyright © 2004 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 14 March 2004

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate1,650of6,669submissions,25%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader