Viktor Kuncak and Martin C. Rinard.
Decision procedures for set-valued fields.
Electr. Notes Theor. Comput. Sci.; Proc. Abstract Interpretation
of Object-Oriented Languages, 131:51--62, 2005.
See [36] for full
version.
A central feature of current object-oriented languages is the ability
to dynamically instantiate user-defined container data structures such
as lists, trees, and hash tables. Implementations of these data
structures typically use references to dynamically allocated objects,
which complicates reasoning about the resulting program. Reasoning is
simplified if data structure operations are specified in terms of
abstract sets of objects associated with each data structure. For
example, an insertion into a data structure in this approach becomes
simply an insertion into a dynamically changing set-valued field of an
object, as opposed to a manipulation of a dynamically linked structure
attached to the object.
In this paper we explore reasoning techniques for programs
that manipulate data structures specified using set-valued
abstract fields associated with container objects. We
compare the expressive power and the complexity of
specification languages based on
1) decidable prefix vocabulary classes of first-order logic,
2) two-variable logic with counting, and
3) Nelson-Oppen combinations of multisorted theories.
Such specification logics can be used for
verification of object-oriented programs with supplied
invariants. Moreover, by selecting an appropriate subset of
properties expressible in such logic, the decision
procedures for these logics enable automated computation of
lattice operations in an abstract interpretation domain, as
well as automated computation of abstract program semantics.
[ bib ]
Back