Abstract
This paper presents a model for concurrent programming, where programs (concurrent program structures) are represented as composition expressions over component programs with suitably defined operators. In this model of programming, called Composition bY Event Specification (C-YES), a composition of programs specifies that all events (individual occurrences of named operations, called actions) of component programs can execute in parallel, except for a set of events that interact with each other. Interactions among such events can be specified by establishing execution orderings among them. This paper presents a mechanism, where such interactions are specified by constructing algebraic expressions from a set of primitive interaction expressions and interaction operators. The primitive expressions model interactions at the fundamental level of computations, namely, events. The interaction operators model nondeterministic interactions and interaction over sets of events.
A mechanism for the representation of concurrent programs, called interacting blocks, is also given. The interface of an interacting block contains, in addition to the conventional parameters, references to events that may interact with events of other interacting blocks. The implementation of an interacting block contains definitions of its computations and mappings between internal events, and references to these events. Examples illustrating the properties of the C-YES model are presented in the paper.
This work was supported by Texas Advanced Research Program under grant 003658-445.
Preview
Unable to display preview. Download preview PDF.
References
F. Andre, D. Herman, and J. P. Verjus. Synchronization of Parallel Programs. The MIT Press, Cambridge, MA, 1985.
Pierre America. POOL-T: A Parallel Object-Oriented Language. In A. Yonezawa and M. Tokoro, editors, Object-Oriented Concurrent Programming, pages 199–220. The MIT Press, 1987.
S. Andler. Predicate Path Expression. In Proc. Sixth ACM Symposium on Principles of Programming Languages, pages 226–236, 1979.
Gregory R. Andrews. Concurrent Programming. The Benjamin/Cummings Publishing Company, Redwood City, CA, 1991.
Toby Bloom. Evaluating Synchronization Schemes. In Proc 7th Symposium on Operating Systems Principles, pages 24–32. ACM, 1979.
Andrew Birrell and B. J. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1):39–59, 1984.
R. H. Campbell and A. N. Habermann. The Specification of Process Synchronization by Path Expressions. In Lecture Notes on Computer Sciences, volume 16, pages 89–102. Springer Verlag, 1974.
Gianna Cioni and Antoni Kreczmar. Modules in High Level Programming Languages. In Advanced Programming Methodologies, pages 247–340. Academic Press, Ltd., 1989.
K. Mani Chandy and Carl Kesselman. Compositional C++: Compositional Parallel Programming. Technical Report Caltech-cs-tr-92-13, Cal Tech, 1992.
E. W. Dijkstra. Solution of a Problem in Concurrent Programming Control. Communication of the ACM, 8(9):569, 1965.
E. W. Dijkstra. The Structure of the THE Multiprogramming System. Communication of the ACM, 11(5):341–346, 1968.
Ian Foster and Stephen Taylor. Strand: New Concepts in Parallel Programming. Prentice Hall, Englewood Cliffs, N. J., 1989.
J. E. Grass and R. H. Campbell. Mediators: A Synchronization Mechanism. In Sixth International Conference on Distributed Computing Systems, pages 468–477, 1986.
Narain H Gehani. Ada: Concurrent Programming. Prentice Hall, Englewood Cliffs, N.J., 1984.
Narain H Gehani and W. D Roome. Concurrent C. Software — Practice and Experience, 16(9):821–844, 1986.
C. A. R. Hoare. Monitor: An Operating System Structuring Concept. Communication of the ACM, 17(10):549–557, 1974.
C. A. R. Hoare. Communicating Sequential Processes. CACM, 21(8):666–677, 1978.
Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, New Jersey, 1978.
Brinch Hansen Per. Joyce — A Programming Language for Distributed Systems. Software — Practice and Experience, 17(1):29–50, 1987.
Vaughan Pratt. Modeling Concurrency with Partial Order. International Journal of Parallel Programming, pages 33–71, 1986.
Ehud Shapiro. The Family of Concurrent Logic Programming Languages. ACM Computing Surveys, 21(3):413–510, 1989.
G. W. Stewart. Introduction to Matrix Computations. Academic Press, New York, 1973.
Chris Tomlinson and Mark Scheevek. Concurrent Object Oriented Programming Languages. In Won Kim and F. H. Lochovsky, editors, Object Oriented Concepts, Databases, and Applications, pages 79–124. ACM Press, 1989.
Barbara B. Wyatt, K. Kavi, and Steve Hufnagel. Parallelism in Object-Oriented Languages: a Survey. IEEE Software, 9(6), 1992.
A. Yonezawa, J. Briot, and E. Shibayama. Modeling and Programming in Object-Oriented Concurrent Language ABCL/1. In A. Yonezawa and M. Tokoro, editors, Object-Oriented Concurrent Programming, pages 55–89. The 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
Pandey, R., Browne, J.C. (1994). Event-based composition of concurrent programs. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1993. Lecture Notes in Computer Science, vol 768. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57659-2_7
Download citation
DOI: https://doi.org/10.1007/3-540-57659-2_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57659-4
Online ISBN: 978-3-540-48308-3
eBook Packages: Springer Book Archive