Concurrent Objects in a Process Calculus

A programming style based on concurrent objects arises almost inevitably in languages where processes communicate by exchanging data on channels. Using the pict language as an experimental testbed, we introduce a simple object-based programming style and compare three techniques for controlling concurrency between methods in this setting: explicit locking, a standard choice operator, and a more refined replicated choice operator.

[1]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[2]  Cliff B. Jones A pi-Calculus Semantics for an Object-Based Design Notation , 1993, CONCUR.

[3]  John H. Reppy Synchronous operations as first-class values , 1988, PLDI '88.

[4]  Mario Tokoro,et al.  A Typing System for a Calculus of Objects , 1993, ISOTAS.

[5]  Benjamin C. Pierce,et al.  Object-oriented programming without recursive types , 1993, POPL '93.

[6]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[7]  Robin Milner,et al.  Definition of standard ML , 1990 .

[8]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[9]  John H. Reppy,et al.  CML: A Higher-Order Concurrent Language , 1991, PLDI.

[10]  Robin Milner,et al.  Commentary on standard ML , 1990 .

[11]  Oscar Nierstrasz,et al.  Towards an Object Calculus ∗ , 1991 .

[12]  Vasco Thudichum Vasconcelos,et al.  Typed Concurrent Objects , 1994, ECOOP.

[13]  Akinori Yonezawa,et al.  Towards Foundations of Concurrent Object-Oriented Programming-Types and Language Design , 1995, Theory Pract. Object Syst..

[14]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[15]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[16]  Davide Sangiorgi,et al.  Expressing mobility in process algebras : first-order and higher-order paradigms , 1993 .

[17]  John H. Reppy,et al.  Higher-Order Concurrency , 1992 .

[18]  Robin Milner,et al.  Functions as processes , 1990, Mathematical Structures in Computer Science.

[19]  Benjamin C. Pierce,et al.  Simple type-theoretic foundations for object-oriented programming , 1994, Journal of Functional Programming.

[20]  David Walker Algebraic Proofs of Properties of Objects , 1994, ESOP.

[21]  Oscar Nierstrasz,et al.  Towards and Object Calculus , 1991, Object-Based Concurrent Computing.

[22]  G. Erard Boudol Asynchrony and the -calculus (note) , 1992 .

[23]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[24]  Michael Papathomas,et al.  A Unifying Framework for Process Calculus Semantics of Concurrent Object-Oriented Languages , 1991, Object-Based Concurrent Computing.