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

  • Authors:
  • David A. Naumann;Mike Barnett

  • Affiliations:
  • Stevens Institute of Technology, Castle Point on Hudson, Hoboken, NJ;Microsoft Research, Redmond, WA

  • Venue:
  • Theoretical Computer Science - Components and objects
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

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.