Event-based Composition of Concurrent Programs

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.

[1]  Pierre America,et al.  Pool-T: a parallel object-oriented language , 1987 .

[2]  F. André,et al.  Synchronization of Parallel Programs , 1985 .

[3]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[4]  Krishna M. Kavi,et al.  Parallelism in object-oriented languages: a survey , 1992, IEEE Software.

[5]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[6]  Narain H. Gehani,et al.  Concurrent C , 1986, Softw. Pract. Exp..

[7]  Randal E. Bryant,et al.  Concurrent programming , 1980, Operating Systems Engineering.

[8]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[9]  K. Mani Chandy,et al.  Compositional C++: Compositional Parallel Programming , 1992, LCPC.

[10]  G. Cioni,et al.  Modules in high level programming languages , 1989 .

[11]  Sten F. Andler,et al.  Predicate path expressions , 1979, POPL.

[12]  Per Brinch Hansen,et al.  Joyce—A programming language for distributed systems , 1987, Softw. Pract. Exp..

[13]  Akinori Yonezawa,et al.  Modelling and programming in an object-oriented concurrent language ABCL/1 , 1987 .

[14]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[15]  Narain H. Gehani,et al.  Ada: Concurrent Programming , 1984 .

[16]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[17]  Toby Bloom,et al.  Evaluating synchronization mechanisms , 1979, SOSP '79.

[18]  Alan Burns,et al.  Concurrent programming , 1980, Operating Systems Engineering.

[19]  Roy H. Campbell,et al.  Synchronizing shared objects , 1995, Distributed Syst. Eng..

[20]  Ian Foster,et al.  Strand: New Concepts in Parallel Programming , 1990 .

[21]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[22]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[23]  Chris Tomlinson,et al.  Concurrent Object-Oriented Programming Languages , 1989, Object-Oriented Concepts, Databases, and Applications.

[24]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.

[25]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[26]  G. Stewart Introduction to matrix computations , 1973 .