``Integrating Pointer Variables into One-Way Constraint Models''
Bradley T. Vander Zanden,
Dario Giuse, and
ACM Transactions on Computer Human
1, 2, (June 1994), 161-213.
Available via anonymous ftp to cs.utk.edu in
Pointer variables have long been considered useful
for constructing and manipulating data structures in traditional
This paper discusses how pointer variables can be integrated
into one-way constraint models and indicates
how these constraints can be usefully employed in user
allow constraints to model a wide array of dynamic application behavior,
simplify the implementation of structured objects and demonstrational
and improve the storage and efficiency of constraint-based applications.
This paper also presents two incremental
algorithms--one lazy and one eager--for
solving constraints with pointer variables.
Both algorithms are capable of handling 1) arbitrary systems of
one-way constraints, including constraints that involve cycles; and
2) editing models that allow
multiple changes between calls to
the constraint solver.
These algorithms are also fault-tolerant in that they can gracefully
handle and recover from formulas that crash due to programmer error.
Constraints that use pointer variables have been implemented
in a comprehensive user interface
toolkit, Garnet, and our experiences with applications written
in Garnet have
proven the usefulness of pointer-variable constraints.
scale applications have now been implemented using these constraints.