Higher-Order Concurrent Programs with Finite Communication Topology (Extended Abstract)
Abstract:
Concurrent ML (CML) is an extension of the functional language Standard ML (SML) with primitives for the dynamic creation of processes and channels and for the communication of values over channels. Because of the powerful abstraction mechanisms the communication topology of a given program may be very complex and therefore an efficient implementation may be facilitated by knowledge of the topology. This paper presents an analysis for determining when a bounded number of processes and channels will be generated. The analysis proceeds in two stages. First we extend a polymorphic type system for SML to deduce not only the type of CML programs but also their communication behaviour expressed as terms in a new process algebra. Next we develop an analysis that given the communication behaviour predicts the number of processes and channels required during the execution of the CML program. The correctness of the analysis is proved using a subject reduction property for the type system. Appeared in the Proccedings of the 21'st annual ACM SIGPLAN-SIGACT Symposium on Principles
Citations
| 2762 | Communication and Concurrency – Milner - 1989 |
| 1463 | A Proposal for Standard ML – Milner - 1984 |
| 216 | CML: A Higher-order Concurrent Language – Reppy - 1991 |
| 188 | Polymorphic Effect Systems – Lucassen, Gifford - 1988 |
| 119 | Higher-order concurrency – Reppy - 1992 |
| 116 | The type and effect discipline – Talpin, Jouvelot - 1992 |
| 97 | Calculi for Higher Order Communicating Systems – Thomsen - 1990 |
| 76 | A semantics for ML concurrency primitives – Berry, Milner, et al. - 1992 |
| 34 | From CML to process algebras – Nielson, Nielson - 1993 |
| 14 | The typed lambda-calculus with first-class processes – Nielson - 1989 |
| 14 | Polymorphic sorts and types for concurrent functional programs.In – Thomsen - 1994 |
| 8 | Operational and Algebraic Semantics for Facile: A Symmetric – Giacalone, Mistra, et al. - 1990 |

