Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Eiffel: the language
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Simple Ownership Types for Object Containment
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Towards Imperative Modules: Reasoning about Invariants and Sharing of Mutable State
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
A practical type system and language for reference immutability
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object ownership and containment
Object ownership and containment
Permission accounting in separation logic
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Protecting representation with effect encapsulation
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
On ownership and accessibility
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Ownership transfer in universe types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
CoBoxes: Unifying Active Objects and Structured Heaps
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
An Algebraic Semantics for Contract-Based Software Components
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
A Unified Framework for Verification Techniques for Object Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Flexible Immutability with Frozen Objects
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
The need for flexible object invariants
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Ownership Downgrading for Ownership Types
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Structural lock correlation with ownership types
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Aliasing in Object-Oriented Programming
Object ownership in program verification
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Object invariants describe the consistency of object states, and are crucial for reasoning about the correctness of object-oriented programs. However, reasoning about object invariants in the presence of object abstraction and encapsulation, arbitrary object aliasing and re-entrant method calls, is difficult. We present a framework for reasoning about object invariants based on a behavioural contract that specifies two sets: the validity invariant-- objects that must be valid before and after the behaviour; and the validity effect--objects that may be invalidated during the behaviour. The overlap of these two sets is critical because it captures precisely those objects that need to be re-validated at the end of the behaviour. When there is no overlap, no further validity checking is required. We also present a type system based on this framework using ownership types to confine dependencies for object invariants. In order to track the validity invariant, the type system restricts updates to permissible contexts, even in the presence of re-entrant calls. Object referencing and read access are unrestricted, unlike earlier ownership type systems.