Results 11 -
13 of
13
Typestate checking and regular graph constraints
, 2002
"... Abstract We introduce regular graph constraints and explore their decidability properties. The motivation for regular graph constraints is 1) type checking of changing types of objects in the presence of linked data structures, 2) shape analysis techniques, and 3) generalization of similar constrain ..."
Abstract
-
Cited by 8 (7 self)
- Add to MetaCart
Abstract We introduce regular graph constraints and explore their decidability properties. The motivation for regular graph constraints is 1) type checking of changing types of objects in the presence of linked data structures, 2) shape analysis techniques, and 3) generalization of similar constraints over trees and grids. Typestate checking for recursive and potentially cyclic data structures requires verifying the validity of implication for regular graph constraints. The implication of regular graph constraints also arises in shape analysis algorithms such as role-analysis and some analyses based on threevalued logic. Over the class of lists regular graph constraints reduce to a nondeterministic finite state automaton as a special case. Over the class of trees the constraints reduce to a nondeterministic top-down tree automaton, and over the class of grids our constraints reduce to domino system and tiling problems. We define a subclass of graphs called heaps as an abstraction of the data structures that a program constructs during its execution. We show that satisfiability of regular graph constraints over the class of heaps is decidable. However, determining the validity of implication for regular graph constraints over the class of heaps is undecidable. The undecidability of implication is the central result of the paper. The result is somewhat surprising because our simple constraints are strictly less expressive than existential monadic second-order logic over graphs. In the key step of our proof we introduce the class of corresponder graphs which mimic solutions of Post correspondence problem instances. We show undecidability by exhibiting a characterization of corresponder graphs in terms of presence and absence of homomorphisms to a finite number of fixed graphs.
Object models, heaps, and interpretations
, 2001
"... Abstract This paper explores the use of object models for specifying verifiable heap invariants. We define a simple language based on sets and relations and illustrate its use through examples. We give formal semantics of the language by translation into predicate calculus and interpretation of pred ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
Abstract This paper explores the use of object models for specifying verifiable heap invariants. We define a simple language based on sets and relations and illustrate its use through examples. We give formal semantics of the language by translation into predicate calculus and interpretation of predicates in terms of objects and references in the program heap.
A Language for Role Specifications
, 2001
"... This paper presents a new language for identifying the changing roles that objects play over the course of the computation. Each object's points-to relationships with other objects determine the role that it currently plays. Roles therefore reflect the object's membership in specific data structures ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
This paper presents a new language for identifying the changing roles that objects play over the course of the computation. Each object's points-to relationships with other objects determine the role that it currently plays. Roles therefore reflect the object's membership in specific data structures, with the object's role changing as it moves between data structures. We provide a programming model which allows the developer to specify the roles of objects at different points in the computation. The model also allows the developer to specify the effect of each operation at the granularity of role changes that occur in identified regions of the heap.

