Skip to main content

Event-based composition of concurrent programs

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1993)

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

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.

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. F. Andre, D. Herman, and J. P. Verjus. Synchronization of Parallel Programs. The MIT Press, Cambridge, MA, 1985.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. S. Andler. Predicate Path Expression. In Proc. Sixth ACM Symposium on Principles of Programming Languages, pages 226–236, 1979.

    Google Scholar 

  4. Gregory R. Andrews. Concurrent Programming. The Benjamin/Cummings Publishing Company, Redwood City, CA, 1991.

    Google Scholar 

  5. Toby Bloom. Evaluating Synchronization Schemes. In Proc 7th Symposium on Operating Systems Principles, pages 24–32. ACM, 1979.

    Google Scholar 

  6. Andrew Birrell and B. J. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1):39–59, 1984.

    Article  Google Scholar 

  7. 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.

    Google Scholar 

  8. Gianna Cioni and Antoni Kreczmar. Modules in High Level Programming Languages. In Advanced Programming Methodologies, pages 247–340. Academic Press, Ltd., 1989.

    Google Scholar 

  9. K. Mani Chandy and Carl Kesselman. Compositional C++: Compositional Parallel Programming. Technical Report Caltech-cs-tr-92-13, Cal Tech, 1992.

    Google Scholar 

  10. E. W. Dijkstra. Solution of a Problem in Concurrent Programming Control. Communication of the ACM, 8(9):569, 1965.

    Article  Google Scholar 

  11. E. W. Dijkstra. The Structure of the THE Multiprogramming System. Communication of the ACM, 11(5):341–346, 1968.

    Article  Google Scholar 

  12. Ian Foster and Stephen Taylor. Strand: New Concepts in Parallel Programming. Prentice Hall, Englewood Cliffs, N. J., 1989.

    Google Scholar 

  13. J. E. Grass and R. H. Campbell. Mediators: A Synchronization Mechanism. In Sixth International Conference on Distributed Computing Systems, pages 468–477, 1986.

    Google Scholar 

  14. Narain H Gehani. Ada: Concurrent Programming. Prentice Hall, Englewood Cliffs, N.J., 1984.

    Google Scholar 

  15. Narain H Gehani and W. D Roome. Concurrent C. Software — Practice and Experience, 16(9):821–844, 1986.

    Google Scholar 

  16. C. A. R. Hoare. Monitor: An Operating System Structuring Concept. Communication of the ACM, 17(10):549–557, 1974.

    Google Scholar 

  17. C. A. R. Hoare. Communicating Sequential Processes. CACM, 21(8):666–677, 1978.

    Google Scholar 

  18. Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, New Jersey, 1978.

    Google Scholar 

  19. Brinch Hansen Per. Joyce — A Programming Language for Distributed Systems. Software — Practice and Experience, 17(1):29–50, 1987.

    Google Scholar 

  20. Vaughan Pratt. Modeling Concurrency with Partial Order. International Journal of Parallel Programming, pages 33–71, 1986.

    Google Scholar 

  21. Ehud Shapiro. The Family of Concurrent Logic Programming Languages. ACM Computing Surveys, 21(3):413–510, 1989.

    Article  Google Scholar 

  22. G. W. Stewart. Introduction to Matrix Computations. Academic Press, New York, 1973.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. Barbara B. Wyatt, K. Kavi, and Steve Hufnagel. Parallelism in Object-Oriented Languages: a Survey. IEEE Software, 9(6), 1992.

    Google Scholar 

  25. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints 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

Publish with us

Policies and ethics