Higher-order concurrent programs with finite communication topology
HR Nielson, F Nielson - Proceedings of the 21st ACM SIGPLAN-SIGACT …, 1994 - dl.acm.org
Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of …, 1994•dl.acm.org
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 …
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 …
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.