Linear references are guaranteed to be free from aliases. This is a strong property that simplifies reasoning about programs and enables powerful optimisations, but it is also a property that is too strong for many applications. Notably, lock-free algorithms, which implement protocols that ensure safe, non-blocking concurrent access to data structures, are generally not typable with linear references because they rely on aliasing to achieve lock-freedom. This paper presents LOLCAT, a type system with a relaxed notion of linearity that allows an unbounded number of aliases to an object as long as at most one alias at a time owns the right to access the contents of the object. This ownership can be transferred between aliases, but can never b...
Thesis (Ph.D.)--University of Washington, 2014This dissertation proposes a family of techniques for ...
Lock-free data objects offer several advantages over their blocking counterparts, such as being immu...
References are a programming language construct that lets a programmer access a datum invariant of i...
Linear references are guaranteed to be free from aliases. This is a strong property that simplifies ...
A linear reference is a reference guaranteed to be unaliased. Thisis a powerful property that simpli...
This extended abstract overviews work on a type system for lock-free programming based on compare-an...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but they are seve...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but are severely ...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
Linear type systems allow destructive operations such as object deallocation and imperative updates ...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
A type system with linearity is useful for checking software protocols and resource management at co...
The proliferation of shared mutable state in object-oriented programming complicates software develo...
The proliferation of shared mutable state in object-orientedprogramming complicates software develop...
Aliasing is a vital concept of programming, but it comes with a plethora of challenging issues, such...
Thesis (Ph.D.)--University of Washington, 2014This dissertation proposes a family of techniques for ...
Lock-free data objects offer several advantages over their blocking counterparts, such as being immu...
References are a programming language construct that lets a programmer access a datum invariant of i...
Linear references are guaranteed to be free from aliases. This is a strong property that simplifies ...
A linear reference is a reference guaranteed to be unaliased. Thisis a powerful property that simpli...
This extended abstract overviews work on a type system for lock-free programming based on compare-an...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but they are seve...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but are severely ...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
Linear type systems allow destructive operations such as object deallocation and imperative updates ...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
A type system with linearity is useful for checking software protocols and resource management at co...
The proliferation of shared mutable state in object-oriented programming complicates software develo...
The proliferation of shared mutable state in object-orientedprogramming complicates software develop...
Aliasing is a vital concept of programming, but it comes with a plethora of challenging issues, such...
Thesis (Ph.D.)--University of Washington, 2014This dissertation proposes a family of techniques for ...
Lock-free data objects offer several advantages over their blocking counterparts, such as being immu...
References are a programming language construct that lets a programmer access a datum invariant of i...