Skip to main content

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

  • Conference paper
  • First Online:
Object-Oriented Programming (ECOOP 1994)

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

Included in the following conference series:

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.

This research was supported in part by the National Science Foundation grant CCR-9102578 and CDA-9015692 (Research Instrumentation) and by Citibank.

Supported by the Portuguese Foundation for Research, Science and Technology (JNICT).

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, 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. Gul Agha, Peter Wegner, and Akinori Yonezawa. Research directions in Objectoriented programming. MIT Press, 1993.

    Google Scholar 

  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. 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. 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. Denis Caromel. Toward a method of object-oriented concurrent programming. Communications of the ACM, 36(9):90–101, September 1993.

    Article  Google Scholar 

  7. Edsger W. Dijkstra. Cooperating sequential processes. In F. Genuys, editor, Programming Languages, pages 43–112. Academic Press, New York, 1968.

    Google Scholar 

  8. C.A.R. Hoare. Monitors: an operating system structuring concept. Communications of the ACM, 17(10):549–557, October 1974.

    Article  MATH  Google Scholar 

  9. C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.

    Google Scholar 

  10. M. Karaorman and J. Bruno. Introducing concurrency to a sequential language. Communications of the ACM, 36(9):103–116, September 1993.

    Article  Google Scholar 

  11. Karl Lieberherr. The Art of Growing Adaptive Object-Oriented Software. PWS Publishing Company, 1995. To be published.

    Google Scholar 

  12. Karl Lieberherr and Ian Holland. Assuring good style for object-oriented programs. IEEE Software, 6(5):38–48, September 1989.

    Article  Google Scholar 

  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. 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. 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. Karl J. Lieberherr and Cun Xiao. Object-Oriented Software Evolution. IEEE Transactions on Software Engineering, 19(4):313–343, April 1993.

    Article  Google Scholar 

  17. Klaus-Peter Löhr. Concurrency annotations for reusable software. Communications of the ACM, 36(9):90–101, September 1993.

    Article  Google Scholar 

  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. 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. Bertrand Meyer. Systematic concurrent object-oriented programming. Communications of the ACM, 36(9):56–80, September 1993.

    Article  Google Scholar 

  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. 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. Norman Wilde and Ross Huitt. Maintenance support for object-oriented programs. IEEE Transactions on Software Engineering, pages 1038–1044, December 1992.

    Google Scholar 

  24. Norman Wilde, Paul Matthews, and Ross Huitt. Maintaining object-oriented software. IEEE Software, pages 75–80, January 1993.

    Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mario Tokoro Remo Pareschi

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lopes, C.V., Lieberherr, K.J. (1994). Abstracting process-to-function relations in concurrent object-oriented applications. In: Tokoro, M., Pareschi, R. (eds) Object-Oriented Programming. ECOOP 1994. Lecture Notes in Computer Science, vol 821. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0052177

Download citation

  • DOI: https://doi.org/10.1007/BFb0052177

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58202-1

  • Online ISBN: 978-3-540-48567-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics