Abstract:
We propose a type-based technique to analyze how many times each value, including communication channels, is used during execution of concurrent programs. This work is closely related with the recent work by Kobayashi, Pierce, and Turner on a linear channel system on a process calculus. They introduced a type system that ensures certain channels (called linear channels) to be used just once, and showed that how linear channels help reasoning about program behaviors. However, they only deal with a pure message passing calculus, and more importantly, the type reconstruction problem is left open. This thesis develops a type reconstruction algorithm of a variant of a linear channel type system for a concurrent language with data constructors such as records, and let-polymorphism. We can detect not only linear channels but also other used-once values (closures, records, etc.) by the type reconstruction algorithm. Computational cost of our analysis (excluding cost of ordinary type reconstruction-- which is known exponential in the worst case--) is polynomial in the size of a program. Moreover, several experiments
Citations
|
865
|
ACTORS, a model of concurrent computation in distributed systems
– Agha
- 1986
|
|
588
|
Compiling with Continuations
– Appel
- 1992
|
|
408
|
Concurrent constraint programming
– Saraswat
- 1993
|
|
316
|
The polyadic -calculus: a tutorial
– Milner
- 1991
|
|
264
|
The family of concurrent logic programming languages
– Shapiro
- 1989
|
|
233
|
Pict: A programming language based on the pi-calculus
– Pierce, Turner
- 2000
|
|
216
|
CML: A Higher-order Concurrent Language
– Reppy
- 1991
|
|
148
|
Type systems for programming languages
– Mitchell
- 1990
|
|
116
|
Linearity and the pi-calculus
– Kobayashi, Pierce, et al.
- 1999
|
|
114
|
ABCL: An Object-Oriented Concurrent System
– Yonezawa
- 1990
|
|
91
|
A practical soft type system for Scheme
– Wright, Cartwright
- 1997
|
|
78
|
Concurrent objects in a process calculus
– Pierce, Turner
- 1994
|
|
74
|
Once upon a type
– Turner, Wadler, et al.
- 1995
|
|
64
|
Higher-order concurrent programs with finite communication topology
– Nielson, Nielson
- 1994
|
|
61
|
Object-oriented concurrent programming
– Yonezawa, Tokoro
- 1987
|
|
44
|
Deciding ML typability is complete for deterministic exponential time
– Mairson
- 1990
|
|
39
|
Higher-order concurrent linear logic programming
– Kobayashi, Yonezawa
|
|
38
|
Towards foundations for concurrent objectoriented programming – types and language design. Theory and Practice of Object Systems
– Kobayashi, Yonezawa
- 1995
|
|
30
|
A multi-threaded higherorder user interface toolkit
– Gansner, Reppy
- 1993
|
|
26
|
Static analysis of communication for asynchronous concurrent programming languages
– Kobayashi, Nakade, et al.
- 1995
|
|
19
|
Type-Theoretic Foundations for Concurrent Object-Programming
– Kobayashi, Yonezawa
- 1994
|
|
19
|
Schematic: A Concurrent Object-Oriented Extension to Scheme
– Taura, Yonezawa
- 1996
|
|
13
|
Type-based analysis of usage of communication channels for concurrent programming languages
– Igarashi, Kobayashi
- 1997
|
|
10
|
Static and dynamic processor allocation for higher-order concurrent languages
– Nielson, Nielson
- 1995
|
|
9
|
Programming in the pi-calculus: An experiment in programming language design. Tutorial notes on the Pict language. Available electronically
– Pierce
- 1993
|
|
5
|
The Boyer benchmark meets linear logic
– Baker
- 1993
|
|
1
|
A partially deadlock-free process calculus (II
– Kobayashi
- 1996
|