## Quasi-Linear Types (1999)

### Cached

### Download Links

- [www.yl.is.s.u-tokyo.ac.jp]
- [www.yl.is.s.u-tokyo.ac.jp]
- [www.yl.is.s.u-tokyo.ac.jp]
- [www.is.s.u-tokyo.ac.jp]
- DBLP

### Other Repositories/Bibliography

Citations: | 64 - 5 self |

### BibTeX

@MISC{Kobayashi99quasi-lineartypes,

author = {Naoki Kobayashi},

title = {Quasi-Linear Types},

year = {1999}

}

### Years of Citing Articles

### OpenURL

### Abstract

Linear types (types of values that can be used just once) have been drawing a great deal of attention because they are useful for memory management, in-place update of data structures, etc.: an obvious advantage is that a value of a linear type can be immediately deallocated after being used. However, the linear types have not been applied so widely in practice, probably because linear values (values of linear types) in the traditional sense do not so often appear in actual programs. In order to increase the applicability of linear types, we relax the condition of linearity by extending the types with information on an evaluation order and simple dataflow information. The extended type system, called a quasi-linear type system, is formalized and its correctness is proved. We have implemented a prototype type inference system for the core-ML that can automatically find out which value is linear in the relaxed sense. Promising results were obtained from preliminary experiments with the p...

### Citations

639 |
The Definition of Standard ML (Revised
- Milner, Tofte, et al.
- 1997
(Show Context)
Citation Context ...nt, the proof is non-trivial and more involved than that of previous type systems. Another contribution is implementation of a type inference system for the core-ML (i.e., Standard ML without modules =-=[15]-=-) based on the new type system, which inputs an unannotated core-ML expression and outputs a useannotated expression. We have so far tested several fairly small programs and obtained promising results... |

145 | Linearity and the picalculus
- Kobayashi, Pierce, et al.
- 1999
(Show Context)
Citation Context ... Promising results were obtained from preliminary experiments with the prototype system. 1 Introduction 1.1 Linear types A number of type systems based on Girard's linear logic [6] have been proposed =-=[1, 3, 9, 13, 14, 22]-=-. They guarantee that certain data structures (called linear values) are accessed just once (or at most once). The distinction between linear values and other values provides many benefits: improvemen... |

101 | Compiling with Types
- Morrisett
- 1995
(Show Context)
Citation Context ... the use 0 from the type system so that dangling pointers cannot be created. The other way, which we are currently exploring (with Atsushi Igarashi), is to use the idea of tag-free garbage collection =-=[16, 21]-=-: we can utilize use-annotated types for tracing heap values at garbage collection time, instead of conventional types. For example, from the type real 1 2 ! real 0 of y in the above closure, it is kn... |

93 | Lively linear Lisp — ‘Look Ma, no garbage
- Baker
- 1992
(Show Context)
Citation Context ... Promising results were obtained from preliminary experiments with the prototype system. 1 Introduction 1.1 Linear types A number of type systems based on Girard's linear logic [6] have been proposed =-=[1, 3, 9, 13, 14, 22]-=-. They guarantee that certain data structures (called linear values) are accessed just once (or at most once). The distinction between linear values and other values provides many benefits: improvemen... |

93 | From region inference to von Neumann machines via region representation inference
- Birkedal, Tofte, et al.
- 1996
(Show Context)
Citation Context ...arget language. Its extension with polymorphism and other data structures will be briefly discussed in Section 6. Because our type system is sensitive to an evaluation order, we use the K-normal form =-=[5]-=- in order to make the evaluation order explicit and name each intermediate value. (For readability, we sometimes use expressions that are not in K-normal form when giving examples.) The syntax of expr... |

91 | Abstract models of memory management
- Morrisett, Felleisen, et al.
- 1995
(Show Context)
Citation Context ...cs In order to clarify how use annotation is used for allocating /deallocating heap values at run-time, we define an operational semantics as a rewriting relation on pairs of a heap and an expression =-=[17, 22]-=-. Definition 2.4 [evaluation contexts]: The set of evaluation contexts is given by the following syntax: C[ ] ::= [ ] j let x = C[ ] in M: We write C[M ] for the expression obtained from C[ ] by repla... |

87 | Once upon a type
- Turner, Wadler, et al.
- 1995
(Show Context)
Citation Context ... Promising results were obtained from preliminary experiments with the prototype system. 1 Introduction 1.1 Linear types A number of type systems based on Girard's linear logic [6] have been proposed =-=[1, 3, 9, 13, 14, 22]-=-. They guarantee that certain data structures (called linear values) are accessed just once (or at most once). The distinction between linear values and other values provides many benefits: improvemen... |

78 | A partially deadlock-free typed process calculus. To appear as a technical report
- Kobayashi
- 1997
(Show Context)
Citation Context ... to be an !-value. We can overcome this problem by representing a type environment as a poset of type bindings in order to express the order of access to different variables, as in an earlier version =-=[10]-=- of Kobayashi's type system for deadlockfreedom [11]. Combining our analysis with other analyses Our analysis of ffi-values is weak in dealing with curried functions. Consider an expression (z:(fst(z)... |

74 |
Single-threaded polymorphic lambda calculus
- Guzmán, Hudak
- 1990
(Show Context)
Citation Context ...p locally, and instead it relies on a separate analysis for analyzing the order of memory access (so, the analysis is not integrated as a use-type system, and it is rather complex). Guzm'an and Hudak =-=[7]-=- and Odersky [18] also proposed a kind of an extension of a linear type system, which can take an evaluation order into account and check that destructive operations on arrays or lists are safely used... |

69 | Conventional and uniqueness typing in graph rewrite systems
- Barendsen, Smetsers
- 1993
(Show Context)
Citation Context |

65 | Tag-free garbage collection using explicit type parameters
- Tolmach
- 1994
(Show Context)
Citation Context ... the use 0 from the type system so that dangling pointers cannot be created. The other way, which we are currently exploring (with Atsushi Igarashi), is to use the idea of tag-free garbage collection =-=[16, 21]-=-: we can utilize use-annotated types for tracing heap values at garbage collection time, instead of conventional types. For example, from the type real 1 2 ! real 0 of y in the above closure, it is kn... |

44 |
Lilac: A functional programming language based on linear logic
- Mackie
- 1994
(Show Context)
Citation Context |

33 | The ML Kit, Version 1
- Birkedal, Rothwell, et al.
- 1993
(Show Context)
Citation Context ...type analyzer. It takes an expression of the core-ML as an input, performs type (and use) reconstruction and produces a use-annotated expression. It has been implemented by using the ML kit version 1 =-=[4]-=- as a front end, and supports full features of the core-ML: records, datatype declarations, references, and exceptions. Polymorphism on types and uses is based on the let-polymorphism discussed in Sec... |

32 |
Implementation of the call-by-value lambda-calculus using a stack of regions
- Tofte, Talpin
- 1994
(Show Context)
Citation Context ...hism on types and uses is based on the let-polymorphism discussed in Section 6. Polymorphic recursion on uses would be sound (just as polymorphic recursion on regions is sound in the region inference =-=[20]-=-), but it is not supported currently. That is because the algorithm would become complex and also because the polymorphic recursion does not seem so crucial for our analysis. The current system has th... |

25 | Observers for Linear Types
- Odersky
- 1992
(Show Context)
Citation Context ...nstead it relies on a separate analysis for analyzing the order of memory access (so, the analysis is not integrated as a use-type system, and it is rather complex). Guzm'an and Hudak [7] and Odersky =-=[18]-=- also proposed a kind of an extension of a linear type system, which can take an evaluation order into account and check that destructive operations on arrays or lists are safely used. Unlike ours, th... |

8 |
Type-Based Analysis of Usage of Communication Channels for Concurrent Programming Languages
- Igarashi, Kobayashi
- 1997
(Show Context)
Citation Context ...that (1 2 2 ) + ( 0 1 2 0 0 2 ) is defined only if 1 =s0 1 and 2 =s0 2 . This forces many type expressions to be shared and saves the time and space of the analysis (in fact, the previous analysis in =-=[8, 9]-=-, which imposes a similar restriction, is performed in polynomial time for the monomorphic type system). 6 Extensions We have so far considered a simply-typed -calculus with recursion and pairs. It ca... |

7 | A ’Linear Logic’ quicksort
- Baker
- 1994
(Show Context)
Citation Context ...ed programs output by the system indicate that most linear cons cells in those programs can be updated in-place (the application of linear types to the in-place quick sort has been suggested by Baker =-=[2]-=- but a remarkable point here is that it can be performed for naive programs with no programmer's annotation) . 1.5 Structure of the paper The rest of this paper is structured as follows. Section 2 int... |

5 | Type-based analysis of usage of values for concurrent programming languages
- Igarashi
- 1997
(Show Context)
Citation Context ...unctional programs. 1.2 Limitation of linear types In spite of the above-mentioned benefit from linear type systems, they do not seem to have been used so widely, even after type inference algorithms =-=[8, 9, 22]-=- were proposed that can automatically find which values are linear. We think one of the major reasons for this is that linear type systems are too naive for the above application: what is actually imp... |

1 |
Eekelen. Concurrent Clean ver.1.3 language report
- Plasmeijer, van
- 1997
(Show Context)
Citation Context ... kind of type inference. Our type system and the region inference have both 3 Recently, they dealt also with strict let expressions, but the analysis for them seems to be more naive than our analysis =-=[19]-=-. zero linear omega (zero+linear)/total sumlist10000 0 40,001 2 100.0% qsort20 0 448 4 99.1% msort20 0 496 4 99.2% sieve2000 0 256,455 8 100.0% life 0 2,353,116 26,600 98.9% Knuth-Bendix 0 10,339,410 ... |

1 | Barendsen and Sjaak Smetsers. Conventional and uniqueness typing in graph rewrite systems - Erik - 1993 |