Linear type systems permit programmers to deallocate or explicitly recycle memory, but they are severly restricted by the fact that they admit no aliasing. This paper describes a pseudo-linear type system that allows a degree of aliasing and memory reuse as well as the ability to define complex recursive data structures. Our type system can encode conventional linear data structures such as linear lists and trees as well as more sophisticated data structures including cyclic and doubly-linked lists and trees. In the latter cases, our type system is expressive enough to represent pointer aliasing and yet safely permit destructive operations such as object deallocation. We demonstrate the flexibility of our type system by encoding two common ...
This paper evaluates three alias analyses based on program-ming language types. The first analysis u...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
A type system with linearity is useful for checking software protocols and resource management at co...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but are severely ...
Linear type systems allow destructive operations such as object deallocation and imperative updates ...
Linear references are guaranteed to be free from aliases. This is a strong property that simplifies ...
Even though impressive progress has been made in the area of optimizing and parallelizing scientific...
A linear reference is a reference guaranteed to be unaliased. Thisis a powerful property that simpli...
Existing methods for alias analysis of recursive pointer data structures are based on two approximat...
. Object-oriented systems are typically structured as complex networks of interacting mutable object...
High-performance architectures rely upon powerful optimizing and parallelizing compilers to maximize...
Pointers are variables that store addresses of other variables. Pointer analysis determines what add...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
References are a programming language construct that lets a programmer access a datum invariant of i...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on program-ming language types. The first analysis u...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
A type system with linearity is useful for checking software protocols and resource management at co...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but are severely ...
Linear type systems allow destructive operations such as object deallocation and imperative updates ...
Linear references are guaranteed to be free from aliases. This is a strong property that simplifies ...
Even though impressive progress has been made in the area of optimizing and parallelizing scientific...
A linear reference is a reference guaranteed to be unaliased. Thisis a powerful property that simpli...
Existing methods for alias analysis of recursive pointer data structures are based on two approximat...
. Object-oriented systems are typically structured as complex networks of interacting mutable object...
High-performance architectures rely upon powerful optimizing and parallelizing compilers to maximize...
Pointers are variables that store addresses of other variables. Pointer analysis determines what add...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
References are a programming language construct that lets a programmer access a datum invariant of i...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on program-ming language types. The first analysis u...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
A type system with linearity is useful for checking software protocols and resource management at co...