|
[ Publications ]
[ Research Opportunities ]
[ Partners & Supporters ]
[ Earlier Work ]
|
|
Modular Reasoning about Invariants over Shared State with Interposed Data Members
|
| Stephanie Balzer,
Thomas R. Gross,
Modular Reasoning about Invariants over Shared State with Interposed Data Members, 4th ACM SIGPLAN Workshop on Programming Languages meets Program Verification (PLPV'10), ACM 2010.
[PLPV_2010.pdf]
|
| 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, we 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. We further describe a mechanism, member interposition, that leverages the new
modularization discipline and supports encapsulation of fields of shared objects. We have
implemented the described modularization discipline and the mechanism of member interposition
in the context of Rumer, a relationship-based programming language with support for contract
specifications. We discuss the implications of member interposition for the modular
verification of object invariants with an example. Relationships and interposed members
provide an alternative to ownership type systems. |
|
[ Publications ]
[ Research Opportunities ]
[ Partners & Supporters ]
[ Earlier Work ]
|
|