A number of type systems have used typestates to specify and statically verify protocol compliance. Aliasing is a major challenge for these systems. This paper proposes a modular type system for a core object-oriented language that leverages linear logic for verifying compliance to more expressive protocol specifications than previously supported. The system improves reasoning about aliased objects by associating references with access permissions that systematically capture what aliases know about and can do to objects. Permissions grant full, shared, or read-only access to a certain part of object state and allow aliasing both on the stack and in the heap. The system supports dynamic state tests, arbitrary callbacks, and open recursion. T...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Interobject references in object-oriented programs allow arbitrary aliases between objects. By breac...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...
The presence of aliasing makes modular verification of object-oriented code difficult. If multiple c...
Abstract. The presence of aliasing makes modular verification of object-oriented code difficult. If ...
The modular verification of object-oriented code is made dif-ficult by the presence of aliasing. If ...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
The object-oriented community is paying increasing attention to techniques for object instance encap...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
This thesis presents a general model of access control. It uses a simple notion of an access permiss...
Abstract. Sharing and mutability are inherent in object-oriented languages, but they make precise ty...
Universe types characterise aliasing in object oriented programming languages and are used to reaso...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Generic programming has turned out very useful in the development of reusable software. With the Jav...
The use of shared mutable state, commonly seen in object-oriented systems, is often problematic due ...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Interobject references in object-oriented programs allow arbitrary aliases between objects. By breac...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...
The presence of aliasing makes modular verification of object-oriented code difficult. If multiple c...
Abstract. The presence of aliasing makes modular verification of object-oriented code difficult. If ...
The modular verification of object-oriented code is made dif-ficult by the presence of aliasing. If ...
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct l...
The object-oriented community is paying increasing attention to techniques for object instance encap...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
This thesis presents a general model of access control. It uses a simple notion of an access permiss...
Abstract. Sharing and mutability are inherent in object-oriented languages, but they make precise ty...
Universe types characterise aliasing in object oriented programming languages and are used to reaso...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Generic programming has turned out very useful in the development of reusable software. With the Jav...
The use of shared mutable state, commonly seen in object-oriented systems, is often problematic due ...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Interobject references in object-oriented programs allow arbitrary aliases between objects. By breac...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...