Advertisement

Abstracting process-to-function relations in concurrent object-oriented applications

  • Cristina Videira Lopes
  • Karl J. Lieberherr
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 821)

Abstract

This paper presents a programming model for concurrent object-oriented applications by which concurrency issues are abstracted and separated from the code. The main goal of the model is to minimize dependency between application specific functionality and concurrency control. Doing so, software reuse can be effective and concurrent programs are more flexible, meaning that changes in the implementation of the operations don't necessarily imply changes in the synchronization scheme (and vice-versa). We make an analysis of concurrent computation, review existing systems and their inherent limitations, and discuss the fundamental problems in abstracting concurrency. Then we propose a solution based on lessons learned with adaptive software, introducing the concept of synchronization patterns. The result is a programming model by which data, operations and concurrency control are minimally interdependent.

Keywords

Concurrency synchronization object-orientation reusability adaptiveness 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    G. Agha, S. FrØlund, W. Kim, R. Panwar, A. Patterson, and D. Sturman. Abstraction and modularity mechanisms for concurrent computing. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, chapter 1, pages 3–21. MIT press, 1993.Google Scholar
  2. 2.
    Gul Agha, Peter Wegner, and Akinori Yonezawa. Research directions in Objectoriented programming. MIT Press, 1993.Google Scholar
  3. 3.
    Pierre America. POOL-T: A parallel object-oriented language. In Akinori Yonezawa and Mario Tokoro, editors, Object-Oriented Concurrent Programming, pages 55–86. MIT Press, 1987.Google Scholar
  4. 4.
    Lodewijk Bergmans, Mehmet Aksit, Ken Wakita, and Akinori Yonezawa. An object-oriented model for extensible concurrent systems: the composition-filters approach. Memoranda Informatica, 92(87), December 1992.Google Scholar
  5. 5.
    A. Black, N. Hutchinson, E. Jul, and H. Levy. Object Structure in the Emerald System. In OOPSLA '86 Proceedings, pages 78–86, Portland, Oregon, September 1986.Google Scholar
  6. 6.
    Denis Caromel. Toward a method of object-oriented concurrent programming. Communications of the ACM, 36(9):90–101, September 1993.CrossRefGoogle Scholar
  7. 7.
    Edsger W. Dijkstra. Cooperating sequential processes. In F. Genuys, editor, Programming Languages, pages 43–112. Academic Press, New York, 1968.Google Scholar
  8. 8.
    C.A.R. Hoare. Monitors: an operating system structuring concept. Communications of the ACM, 17(10):549–557, October 1974.MATHCrossRefGoogle Scholar
  9. 9.
    C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.Google Scholar
  10. 10.
    M. Karaorman and J. Bruno. Introducing concurrency to a sequential language. Communications of the ACM, 36(9):103–116, September 1993.CrossRefGoogle Scholar
  11. 11.
    Karl Lieberherr. The Art of Growing Adaptive Object-Oriented Software. PWS Publishing Company, 1995. To be published.Google Scholar
  12. 12.
    Karl Lieberherr and Ian Holland. Assuring good style for object-oriented programs. IEEE Software, 6(5):38–48, September 1989.CrossRefGoogle Scholar
  13. 13.
    Karl J. Lieberherr, Walter Hürsch, Ignacio Silva-Lepe, and Cun Xiao. Experience with a graph-based propagation pattern programming tool. In Gene Forte et al., editor, International Workshop on CASE, pages 114–119, Montréal, Canada, 1992. IEEE Computer Society.Google Scholar
  14. 14.
    Karl J. Lieberherr, Ignacio Silva-Lepe, and Cun Xiao. Adaptive object-oriented programming using graph-based customization. Communications of the ACM, May 1994. Accepted for publication.Google Scholar
  15. 15.
    Karl J. Lieberherr and Cun Xiao. Minimizing dependency on class structures with adaptive programs. In S. Nishio and A. Yonezawa, editors, International Symposium on Object Technologies for Advanced Software, pages 424–441, Kanazawa, Japan, November 1993. JSSST, Springer Verlag.Google Scholar
  16. 16.
    Karl J. Lieberherr and Cun Xiao. Object-Oriented Software Evolution. IEEE Transactions on Software Engineering, 19(4):313–343, April 1993.CrossRefGoogle Scholar
  17. 17.
    Klaus-Peter Löhr. Concurrency annotations for reusable software. Communications of the ACM, 36(9):90–101, September 1993.CrossRefGoogle Scholar
  18. 18.
    S. Matsuoka and A. Yonezawa. Analysis of inheritance anomaly in object-oriented concurrent programming languages. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, chapter 1, pages 107–150. MIT press, 1993.Google Scholar
  19. 19.
    José Meseguer. Solving the inheritance anomaly in concurrent object-oriented programming. In Oscar Nierstrasz, editor, Lecture Notes in Computer Science, pages 220–246. ECOOP'93, Springer-Verlag, July 1993.Google Scholar
  20. 20.
    Bertrand Meyer. Systematic concurrent object-oriented programming. Communications of the ACM, 36(9):56–80, September 1993.CrossRefGoogle Scholar
  21. 21.
    Ignacio Silva-Lepe, Walter Hürsch, and Greg Sullivan. A Demeter/C++ Report. C++ Report, SIGS Publication, February 1994. To be published.Google Scholar
  22. 22.
    Pedro Sousa, Paulo Ferreira, José Monge, André Zuquete, Manuel Sequeira, Paulo Guedes, and José Alves Marques. IK Implementation Report. Technical Report INESC-0014, ESPRIT COMANDOS Project, October 1990.Google Scholar
  23. 23.
    Norman Wilde and Ross Huitt. Maintenance support for object-oriented programs. IEEE Transactions on Software Engineering, pages 1038–1044, December 1992.Google Scholar
  24. 24.
    Norman Wilde, Paul Matthews, and Ross Huitt. Maintaining object-oriented software. IEEE Software, pages 75–80, January 1993.Google Scholar
  25. 25.
    A. Yonezawa, E. Shibayama, T. Takada, and Y. Honda. Modelling and programming in an object-oriented concurrent language ABCL/1. In Akinori Yonezawa and Mario Tokoro, editors, Object-Oriented Concurrent Programming, pages 55–86. MIT Press, 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Cristina Videira Lopes
    • 1
  • Karl J. Lieberherr
    • 1
  1. 1.College of Computer ScienceNortheastern UniversityBostonUSA

Personalised recommendations