Linear types for higher order processes with first class directed channels

Abstract We present a small programming language for distributed systems based on message passing processes. In contrast to similar languages, channels are one-to-one connections between a unique sender and a unique receiver process. Process definitions and channels are first class values and the topology of process systems can change dynamically. The operational semantics of the language is defined by means of graph rewriting rules. A static type system based on the notion of linear types ensures that channels are always used as one-to-one connections.

[1]  John H. Reppy,et al.  CML: A higher concurrent language , 1991, PLDI '91.

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

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

[4]  Georg Schied,et al.  Graph-Grammar Semantics of a Higher-Order Programming Language for Distributed Systems , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[5]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

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

[7]  Philip Wadler,et al.  Linear Types can Change the World! , 1990, Programming Concepts and Methods.

[8]  Marko C. J. D. van Eekelen,et al.  Guaranteeing Safe Destructive Updates Through a Type System with Uniqueness Information for Graphs , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[9]  Hartmut Ehrig,et al.  Graph Transformations in Computer Science , 1994, Lecture Notes in Computer Science.

[10]  Thierry Le Sergent,et al.  Programming with Behaviors in an ML Framework - The Syntax and Semantics of LCS , 1994, ESOP.

[11]  Paul Hudak,et al.  Single-threaded polymorphic lambda calculus , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.