Modular Reasoning About Invariants Over Shared State With Interposed Data Members

Free registration required

Executive Summary

Reasoning about object-oriented programs is difficult since such programs usually involve aliasing, and it is not easy to identify the ways objects can relate to each other and thus to confine a program's heap. In this paper, the authors address this problem in the context of a relationship-based programming language. In relationship-based programming languages, relationships are first-class citizens and allow a precise description of inter-object relationships. Relationships enforce a modularization discipline that is closer to the natural modularity inherent to many problem domains and that yields, as a result, program heaps that are DAGs. They further describe a mechanism, member interposition, that leverages the new modularization discipline and supports encapsulation of fields of shared objects.

  • Format: PDF
  • Size: 389 KB