The economy and flexibility of the pi-calculus make it attractive both as an object of theoretical study and as a basis for concurrent language design and implementation. However, such generality has a cost: encoding higher-level features like functional computation in pi-calculus throws away potentially useful information. We show how a linear type system can be used to recover important static information about a process's behaviour. In particular, we can guarantee that two processes communicating over a linear channel cannot interfere with other communicating processes. This enables more aggressive optimisation of communications over linear channels and allows useful refinements to the usual notions of process equivalence for pi-calculus. After developing standard results such as soundness of typing, we focus on equivalences, adapting the standard notion of barbed bisimulation to the linear setting and showing how reductions on linear channels induce a useful "partial confluence " of process behaviors. 1
|
2762
|
R.: Communication and Concurrency
– Milner
- 1989
|
|
886
|
A Calculus of Mobile Processes
– Milner, Parrow, et al.
- 1992
|
|
865
|
ACTORS, a model of concurrent computation in distributed systems
– Agha
- 1986
|
|
299
|
Control structure as patterns of passing messages
– Hewitt
- 1979
|
|
283
|
An Object Calculus for Asynchronous Communication
– Honda, Tokoro
- 1991
|
|
233
|
Pict: A programming language based on the pi-calculus
– Pierce, Turner
- 2000
|
|
229
|
Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms
– Sangiorgi
- 1992
|
|
225
|
Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem
– Bruijn
- 1972
|
|
220
|
Typing and subtyping for mobile processes
– Pierce, Sangiorgi
- 1996
|
|
216
|
CML: A Higher-order Concurrent Language
– Reppy
- 1991
|
|
211
|
Computational interpretations of linear logic
– Abramsky
- 1993
|
|
183
|
The reflexive chemical abstract machine and the join-calculus
– Fournet, Gonthier
- 1996
|
|
181
|
Barbed bisimulation
– Milner, Sangiorgi
- 1992
|
|
125
|
FACILE, a symmetric integration of concurrent and functional programming
– Giacalone, Mishra, et al.
- 1989
|
|
86
|
Proofs and Types, volume 7 of Cambridge Tracts
– Girard, Lafont, et al.
- 1989
|
|
78
|
Concurrent objects in a process calculus
– Pierce, Turner
- 1994
|
|
75
|
A partially deadlock-free typed process calculus
– Kobayashi
- 1998
|
|
74
|
Once upon a type
– Turner, Wadler, et al.
- 1995
|
|
71
|
Typed Concurrent Objects
– Vasconcelos
- 1996
|
|
70
|
Interaction categories and the foundations of typed concurrent programming
– Abramsky, Gay, et al.
- 1995
|
|
64
|
Higher-order concurrent programs with finite communication topology
– Nielson, Nielson
- 1994
|
|
59
|
An interaction-based language and its typing system
– Takeuchi, Honda, et al.
- 1994
|
|
49
|
Linear LISP—Look Ma, No Garbage
– Lively
- 1992
|
|
49
|
A π-calculus semantics for an object-based design notation
– Jones
- 1993
|
|
47
|
Lilac: A functional programming language based on linear logic
– Mackie
- 1991
|
|
43
|
Types for dyadic interaction
– Honda
- 1993
|
|
39
|
Syntactic control of interference revisited
– O’Hearn, Takeyama, et al.
- 1995
|
|
38
|
Towards foundations for concurrent objectoriented programming – types and language design. Theory and Practice of Object Systems
– Kobayashi, Yonezawa
- 1995
|
|
35
|
A sort inference algorithm for the polyadic -calculus
– Gay
- 1993
|
|
31
|
Composing processes
– Honda
- 1996
|
|
26
|
Static analysis of communication for asynchronous concurrent programming languages
– Kobayashi, Nakade, et al.
- 1995
|
|
19
|
Combinatory representation of mobile processes
– Honda, Yoshida
- 1994
|
|
19
|
Type-Theoretic Foundations for Concurrent Object-Programming
– Kobayashi, Yonezawa
- 1994
|
|
18
|
Polarized name passing
– Odersky
- 1995
|
|
15
|
A typed calculus of synchronous processes
– Gay, Nagarajan
- 1995
|
|
15
|
Functional Computation as Concurrent Computation
– Niehren
- 1996
|
|
14
|
On bisimulations for the asynchronous pi-calculus
– Amadio, Castellani, et al.
- 1998
|
|
13
|
Functions as processes. Research Report 1154, INRIA, Sofia Antipolis
– Milner
- 1990
|
|
13
|
Type-based analysis of usage of communication channels for concurrent programming languages
– Igarashi, Kobayashi
- 1997
|
|
10
|
The polyadic ��-calculus: a tutorial. Technical Report ECS--LFCS--91--180, Laboratory for Foundations of Computer Science
– Milner
- 1991
|
|
10
|
Static and dynamic processor allocation for higher-order concurrent languages
– Nielson, Nielson
- 1995
|
|
9
|
Typing confluence
– Nestmann, Steffen
- 1997
|
|
9
|
A polymorphic type system for the polyadic -calculus
– Liu, Walker
- 1995
|
|
7
|
Types for dydadic interaction
– Honda
- 1993
|
|
7
|
Confluence of Processes and Systems of Objects
– Liu, Walker
- 1995
|
|
6
|
Motoki Nakade, and Akinori Yonezawa. Static analysis of communication for asynchronous concurrent programming languages
– Kobayashi
|
|
4
|
The -calculus: Types, polymorphism and implementation
– Turner
- 1995
|
|
1
|
Lolli: An extension of Prolog with linear context management
– Hodas
- 1992
|