A type system with linearity is useful for checking software protocols and resource management at compile time. Linearity provides powerful reasoning about state changes, but at the price of restrictions on aliasing. The hard division between linear and nonlinear types forces the programmer to make a trade-o# between checking a protocol on an object and aliasing the object. Most onerous is the restriction that any type with a linear component must itself be linear. Because of this, checking a protocol on an object imposes aliasing restrictions on any data structure that directly or indirectly points to the object. We propose a new type system that reduces these restrictions with the adoption and focus constructs. Adoption safely allows a pr...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Abstract. Aliasing is endemic in object oriented programming. Because an object can be modified via ...
Object-oriented programming languages provide many software engineering benefits, but these often co...
Linear type systems allow destructive operations such as object deallocation and imperative updates ...
A linear reference is a reference guaranteed to be unaliased. Thisis a powerful property that simpli...
Linear references are guaranteed to be free from aliases. This is a strong property that simplifies ...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
All in-text references underlined in blue are linked to publications on ResearchGate, letting you ac...
Aliasing is a vital concept of programming, but it comes with a plethora of challenging issues, such...
This extended abstract overviews work on a type system for lock-free programming based on compare-an...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but they are seve...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Abstract. Aliasing is endemic in object oriented programming. Because an object can be modified via ...
Object-oriented programming languages provide many software engineering benefits, but these often co...
Linear type systems allow destructive operations such as object deallocation and imperative updates ...
A linear reference is a reference guaranteed to be unaliased. Thisis a powerful property that simpli...
Linear references are guaranteed to be free from aliases. This is a strong property that simplifies ...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
We present Fo, an extension of System F that uses kinds to distinguish between linear and unrestrict...
All in-text references underlined in blue are linked to publications on ResearchGate, letting you ac...
Aliasing is a vital concept of programming, but it comes with a plethora of challenging issues, such...
This extended abstract overviews work on a type system for lock-free programming based on compare-an...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Linear type systems permit programmers to deallocate or explicitly recycle memory, but they are seve...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Abstract. Aliasing is endemic in object oriented programming. Because an object can be modified via ...
Object-oriented programming languages provide many software engineering benefits, but these often co...