ACM Transactions on Programming Languages and Systems · 1999 · 240 citations · 29 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesTheory Of ComputationConcurrent ModelingConcurrent ProgrammingData-flow AnalysisType SystemsBisimulationChannelsHigher-order FunctionsLinear Type SystemsTail Call AnalysisTail Call Optimization
The economy and flexibility of the pi-calculus make it an attractive object of theoretical study and a clean 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 behavior. In particular, we can guarantee that two processes communicating over a linear channel cannot interfere with other communicating processes. 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. For an extended example of the theory, we prove the validity of a tail-call optimization for higher-order functions represented as processes.
29
Jean-Yves Girard · Theoretical Computer Science · 1987 · 4.1K citations
Wojciech Penczek · Science of Computer Programming · 1990 · 4K citations
A calculus of mobile processes, I
Robin Milner, Joachim Parrow, David Walker · Information and Computation · 1992 · 2.8K citations · Full text
Viewing control structures as patterns of passing messages
Carl Hewitt · Artificial Intelligence · 1977 · 1.2K citations · Full text