From Cml to Process Algebras

Reppy’s language CML extends Standard ML of Milner et al. with primitives for communication. It thus inherits a notion of strong polymorphic typing and may be equipped with a structural operational semantics. We formulate an effect system for statically expressing the communication behaviours of CML programs as these are not otherwise reflected in the types. We then show how types and behaviours evolve in the course of computation: types may decrease and behaviours may loose alternatives as well as decrease. It will turn out that the syntax of behaviours is rather similar to that of a process algebra; our main results may therefore be viewed as regarding the semantics of a process algebra as an abstraction of the semantics of an underlying programming language. This establishes a new kind of connection between “realistic” concurrent programming languages and “theoretical” process algebras.

[1]  Flemming Nielson,et al.  The Typed lambda-Calculus with First-Class Processes , 1989, PARLE.

[2]  Bent Thomsen,et al.  A calculus of higher order communicating systems , 1989, POPL '89.

[3]  Prateek Mishra,et al.  Operational and Algebraic Semantics for Facile: A Symmetric Integration of Concurrent and Functional Programming , 1990, ICALP.

[4]  Luca Cardelli,et al.  A semantic basis for quest , 1990, Journal of Functional Programming.

[5]  Bent Thomsen,et al.  Calculi for higher order communicating systems , 1990 .

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

[7]  Robin Milner,et al.  A semantics for ML concurrency primitives , 1992, POPL '92.

[8]  Flemming Nielson,et al.  Two-level functional languages , 1992, Cambridge tracts in theoretical computer science.

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

[10]  Pierre Jouvelot,et al.  The type and effect discipline , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[11]  Giuseppe Castagna,et al.  A calculus for overloaded functions with subtyping , 1992, LFP '92.

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

[13]  Christoph Crasemann,et al.  πλ-Kalküle für Prozesse und Funktionen , 1993 .

[14]  Kim G. Larsen,et al.  The Fork Calculus , 1993, Nord. J. Comput..