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.
- M. Aksit. On the Design of the Object-Oriented Language Sina. PhD thesis, University of Twente, Enschede, 1989.Google Scholar
- 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 ScholarDigital Library
- P. America. POOL: Design and experience. OOPS Messenger, 2(2):16--20, Apr. 1991. Google ScholarDigital Library
- 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 ScholarDigital Library
- L. Bergmans. Composing Concurrent Objects. PhD thesis, University of Twente, 1994.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification Second Edition. Sun Microsystems, June 2000. Google ScholarDigital Library
- C. A. R. Hoare. Monitors: an operating system structriing concept. Communications of the ACM, 17(10):549--557, 1974. Google ScholarDigital Library
- D. Holmes. Synchronization Rings - Composable Synchronization for Object-Oriented Systems. PhD thesis, Macquarie University, 1999.Google Scholar
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- K. Mens, C. Lopes, B. Tekinerdogan, and G. Kiczales. Aspect-oriented programming. LNCS, 1357:483--496, 1998. Google ScholarDigital Library
- B. Meyer. Eiffel: The Language. Prentice Hall, 1992. Google ScholarDigital Library
- B. Meyer. Object-Oriented Software Construction. Prentice Hall, second edition, 1997. Google ScholarDigital Library
- C# Language Specification. Microsoft Press, 2001.Google Scholar
- G. Milicia. Applying formal methods to programming language design and implementation. PhD thesis, BRICS -- University of Aarhus, 2003.Google Scholar
- G. Milicia and V. Sassone. Jeeg: A programming language for concurrent objects synchronization. In Proceeding of JavaGrande/ISSCOPE 2002, pages 212--221, 2002. Google ScholarDigital Library
- G. Milicia and V. Sassone. Jeeg: Temporal constraints for the synchronization of concurrent objects. Technical Report RS-03-6, BRICS, February 2003.Google ScholarCross Ref
- 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 ScholarDigital Library
- B. Stroustrup. The C++ Programming Language 2nd edition. Addition-Wesley, 1991. Google ScholarDigital Library
Index Terms
- The inheritance anomaly: ten years after
Recommendations
Why inheritance anomaly is not worth solving
ICOOOLPS '14: Proceedings of the 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems PLEModern computers improve their predecessors with additional parallelism but require concurrent software to exploit it. Object-orientation is instrumental in simplifying sequential programming, however, in a concurrent setting, programmers adding new ...
Synchronisation, concurrent object-oriented programming and the inheritance anomaly
There have been a number of models proposed for integrating concurrency and object-oriented programming. Unfortunately, there have been few criteria proposed for evaluating them. In focusing on issues of inheritance, designers of new concurrent object-...
Behaviour Equation as Solution of Inheritance Anomaly in Concurrent Object-Oriented Programming Languages
PDP '96: Proceedings of the 4th Euromicro Workshop on Parallel and Distributed Processing (PDP '96)Abstract: In this paper, we propose a new model called Behaviour Description Equation which solves the problem of inheritance anomaly found in concurrent object-oriented programming languages and provides a means for the reuse of synchronisation code. ...
Comments