Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
438806 | Theoretical Computer Science | 2006 | 26 Pages |
Abstract
Imperative and object-oriented programs make ubiquitous use of shared mutable objects. Updating a shared object can and often does transgress a boundary that was supposed to be established using static constructs such as a class with private fields. This paper shows how auxiliary fields can be used to express two state-dependent encapsulation disciplines: ownership, a kind of separation, and friendship, a kind of sharing. A methodology is given for specification and modular verification of encapsulated object invariants and shown sound for a class-based language. As an example the methodology is used to specify iterators, which are problematic for previous ownership systems.
Related Topics
Physical Sciences and Engineering
Computer Science
Computational Theory and Mathematics