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).
Preview
Unable to display preview. Download preview PDF.
References
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.
Gul Agha, Peter Wegner, and Akinori Yonezawa. Research directions in Objectoriented programming. MIT Press, 1993.
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.
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.
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.
Denis Caromel. Toward a method of object-oriented concurrent programming. Communications of the ACM, 36(9):90–101, September 1993.
Edsger W. Dijkstra. Cooperating sequential processes. In F. Genuys, editor, Programming Languages, pages 43–112. Academic Press, New York, 1968.
C.A.R. Hoare. Monitors: an operating system structuring concept. Communications of the ACM, 17(10):549–557, October 1974.
C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.
M. Karaorman and J. Bruno. Introducing concurrency to a sequential language. Communications of the ACM, 36(9):103–116, September 1993.
Karl Lieberherr. The Art of Growing Adaptive Object-Oriented Software. PWS Publishing Company, 1995. To be published.
Karl Lieberherr and Ian Holland. Assuring good style for object-oriented programs. IEEE Software, 6(5):38–48, September 1989.
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.
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.
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.
Karl J. Lieberherr and Cun Xiao. Object-Oriented Software Evolution. IEEE Transactions on Software Engineering, 19(4):313–343, April 1993.
Klaus-Peter Löhr. Concurrency annotations for reusable software. Communications of the ACM, 36(9):90–101, September 1993.
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.
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.
Bertrand Meyer. Systematic concurrent object-oriented programming. Communications of the ACM, 36(9):56–80, September 1993.
Ignacio Silva-Lepe, Walter Hürsch, and Greg Sullivan. A Demeter/C++ Report. C++ Report, SIGS Publication, February 1994. To be published.
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.
Norman Wilde and Ross Huitt. Maintenance support for object-oriented programs. IEEE Transactions on Software Engineering, pages 1038–1044, December 1992.
Norman Wilde, Paul Matthews, and Ross Huitt. Maintaining object-oriented software. IEEE Software, pages 75–80, January 1993.
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.
Author information
Authors and Affiliations
Editor information
Rights 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