Skip to main content

A Concurrency Abstraction Model for Avoiding Inheritance Anomaly in Object-Oriented Programs

  • Chapter
  • First Online:
Compiler Optimizations for Scalable Parallel Systems

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

Summary

In a concurrent object-oriented programming language one would like to be able to inherit behavior and realize synchronization control without compromising the flexibility of either the inheritance mechanism or the synchronization mechanism. A problem called the inheritance anomaly arises when synchronization constraints are implemented within the methods of a class and an attempt is made to specialize methods through inheritance. The anomaly occurs when a subclass violates the synchronization constraints assumed by the superclass. A subclass should have the flexibility to add methods, add instance variables, and redefine inherited methods. Ideally, all the methods of a superclass should be reusable. However, if the synchronization constraints are defined by the superclass in a manner prohibiting incremental modification through inheritance, they cannot be reused, and must be reimplemented to reflect the new constraints; hence, inheritance is rendered useless. We have proposed a novel model of concurrency abstraction, where (a) the specification of the synchronization code is kept separate from the method bodies, and (b) the sequential and concurrent parts in the method bodies of a superclass are inherited by its subclasses in an orthogonal manner.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agha, G., “Concurrent Object-Oriented Programming,” Communications of the ACM, Vol. 33, No. 9, Sept. 1990, pp. 125–141.

    Article  Google Scholar 

  2. America P., “Inheritance and Subtyping in a Parallel Object-Oriented Language,” Proc. European Conf. on Object-Oriented Programming, Springer-Verlag, Berlin, 1987, pp. 234–242.

    Chapter  Google Scholar 

  3. Andrews, G., “Concurrent Programming: Principles and Practice,” The Benjamin Cummings Publ. Co., 1991.

    Google Scholar 

  4. Arjomandi E., O’Farrell, W., and Kalas, I., “Concurrency Support for C++: An Overview,” C++ Report, Jan. 1994, pp. 44–50.

    Google Scholar 

  5. Beck, B., “Shared-Memory Parallel Programming in C++,” IEEE Software, July 1990, pp. 38–48.

    Google Scholar 

  6. Booch, G., “Object-Oriented Analysis and Design with Applications,” The Benjamin Cummings Publ. Co., 1994.

    Google Scholar 

  7. Caromel D., “A General Model for Concurrent and Distributed Object-Oriented Programming,” Proc. of the ACM SIGPLAN Workshop on Object Based Concurrent Programming, Vol 24, No. 4, April 1989, pp. 102–104.

    Google Scholar 

  8. Chandy, K. M. and Kesselman, C., “Compositional C++: Compositional Parallel Programming,” Conf. Record of Fifth Workshop on Languages and Compilers for Parallel Computing, Vol. 757, LNCS, Springer-Verlag, Aug. 1992, pp. 124–144.

    Google Scholar 

  9. Chien, A., Feng, W., Karamcheti, V., and Plevyak, J., “Techniques for Efficient Execution of Fine-Grained Concurrent Programs,” Conf. Record of Sixth Workshop on Languages and Compilers for Parallel Computing, Aug. 1993, pp. 160–174.

    Google Scholar 

  10. Decouchant D., Krakowiak S., Meysembourg M., Riveill M., and Rousset de Pina X., “A Synchronization Mechanism for Typed Objects in a Distributed System,” Proc. ACM SIGPLAN Workshop on Object Based Concurrent Programming, Vol 24, no. 4, April 1989, pp. 105–108.

    Google Scholar 

  11. Ellis, M. and Stroustrup, B., The Annotated C++ Reference Manual, Addison-Wesely, 1990.

    Google Scholar 

  12. Foster, I., “Task Parallelism and High-Performance Languages,” IEEE Parallel & Distributed Technology: Systems & Applications, Vol. 2, No. 3, Fall 1994, pp. 27–36.

    Article  Google Scholar 

  13. Gannon, D. and Lee, J. K., “Object-Oriented Parallelism: pC++ Ideas and Experiments,” Proc. 1991 Japan Soc. for Parallel Processing, 1993, pp. 13–23.

    Google Scholar 

  14. Gehani, N. and Roome, W. D., “Concurrent C++: Concurrent Programming With Class(es),” Software Practice and Experience, Vol. 18, No. 12, 1988, pp. 1157–1177.

    Article  MATH  Google Scholar 

  15. Grimshaw, A. S., “Easy-to-Use Object-Oriented Parallel Programming with Mentat,” Technical Report, CS-92-32, Dept. of Computer Sci., Univ. of Virgina, Charlottesville, 1992.

    Google Scholar 

  16. Gross, T., O’Hallaron, and Subhlok, J., “Task Parallelism in a High-Performance Fortran Framework,” IEEE Parallel & Distributed Technology: Systems & Applications, Vol. 2, No. 3, Fall 1994, pp. 16–26.

    Article  Google Scholar 

  17. Hwang, K., “Advanced Computer Architecture: Parallelism, Scalability, Programmability,” Mc-GrawHill, Inc., 1993.

    Google Scholar 

  18. Kafura, D.G. and Lavender, R.G., “Concurrent Object-Oriented Languages and the Inheritance Anomaly,” Parallel Computers: Theory and Practice, The IEEE Computer Society Press, Los Alamitos, CA, 1995.

    Google Scholar 

  19. Kale, L. V. and Krishnan, S., “CHARM++: A Portable Concurrent Object-Oriented System Based on C++,” Proc. of OOPSLA, Washington DC, Sept–Oct, 1993, pp.91–109.

    Google Scholar 

  20. Kumar, S., “Issues in Parallelizing Object-Oriented Programs,” Proc. of Intn’l Conf. on Parallel Processing Workshop on Challenges for Parallel Processing, Oconomowoc, WI, Aug. 14, 1995, pp. 64–71.

    Google Scholar 

  21. Kumar, S. and Agrawal, D. P., “CORE: A Solution to the Inheritance Anomaly in Concurrent Object-Oriented Languages,” Proc. Sixth Intn’l Conf. on Parallel and Distributed Computing and Systems, Louisville, KY, Oct. 14–16, 1993, pp. 75–81.

    Google Scholar 

  22. Kumar, S. and Agrawal, D. P., “A Class Based Framework for Reuse of Synchronization Code in Concurrent Object-Oriented Languages,” Intn’l Journal of Computers and Their Applications, Vol. 1, No. 1, Aug. 1994, pp. 11–23.

    Google Scholar 

  23. Larus, J. R., “C**: A Large Grain, Object-Oriented Data Parallel Programming Language,” Conf. Record of Fifth Workshop on Languages and Compilers for Parallel Computing, Vol. 757, LNCS, Springer-Verlag, Aug. 1992, pp. 326–341.

    Google Scholar 

  24. Matsuoka, S., Taura, K., and Yonezawa, A., “Highly Efficient and Encapsulated Reuse of Synchronization Code in Concurrent Object-Oriented Languages,” Proc. of OOPSLA, Washington DC, Sept–Oct, 1993, pp.109–126.

    Google Scholar 

  25. Matsuoka, S. and Yonezawa, A., “Analysis of Inheritance Anomaly in Object-Oriented Concurrent Programming Languages,” Research Directions in Concurrent Object-oriented Programming, The MIT Press, 1993.

    Google Scholar 

  26. Meseguer J., “Solving the Inheritance Anomaly in Concurrent Object-Oriented Programming,” Proc. European Conf. on Object-Oriented Programming, Kaiserslautern, Germany, July 1993.

    Google Scholar 

  27. Meyer, B., Object-Oriented Software Construction, Prentice-Hall, Englewood Cliffs, NJ, 1988.

    Google Scholar 

  28. Nierstrasz, O., “Active Objects in Hybrid,” Proc. of OOPSLA, Orlando, Florida, USA, Oct. 1987, pp. 243–253.

    Google Scholar 

  29. Open Software Foundation, “OSF DCE Application Development Reference,” Prentice Hall, Inc., Englewood Cliffs, NJ, 1993.

    Google Scholar 

  30. Plevyak, J. and Chien, A. A., “Obtaining Sequential Efficiency From Concurrent Object-Oriented Programs,” Proc. of the 2 nd ACM Symp. on the Priniciples of Programming Languages, Jan. 1995.

    Google Scholar 

  31. Saleh, H. and Gautron, P., “A Concurrency Control Mechanism for C++ Objects,” Object-Based Concurrent Computing, Springer-Verlag, July 1991, pp. 195–210.

    Google Scholar 

  32. Tomlinson, C. and Singh, V., “Inheritance and Synchronization with Enabled Sets,” Proc. of OOPSLA, New Orleans, USA, Oct. 1989, pp. 103–112.

    Google Scholar 

  33. Wyatt, B. B., Kavi, K., and Hufnagel, S., “Parallelism in Object-Oriented Languages: A Survey,” IEEE Software, Nov. 1992, pp. 39–47.

    Google Scholar 

  34. Yu, G. and Welch, L. R., “Program Dependence Analysis for Concurrency Exploitation in Programs Composed of Abstract Data Type Modules,” Proc. of Sixth IEEE Symp. on Parallel & Distributed Processing, Dallas, TX, Oct. 26–29, 1994, pp. 66–73.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Kumar, S., Agrawal, D.P. (2001). A Concurrency Abstraction Model for Avoiding Inheritance Anomaly in Object-Oriented Programs. In: Pande, S., Agrawal, D.P. (eds) Compiler Optimizations for Scalable Parallel Systems. Lecture Notes in Computer Science, vol 1808. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45403-9_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-45403-9_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41945-7

  • Online ISBN: 978-3-540-45403-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics