Towards imperative modules: reasoning about invariants and sharing of mutable state

David A. Naumann, Mike Barnett · Logic in Computer Science · 2004

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 local co-dependence, 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.

Read the paper · More papers on PaperTik