|
ABSTRACT
Pointer variables have long been considered useful for constructing and manipulating data structures in traditional programming languages. This article discusses how pointer variables can be integrated into one-way constraint models and indicates how these constraints can be usefully employed in user interfaces. Pointer variables allow constraints to model a wide array of dynamic application behavior, simplify the implementation of structured objects and demonstrational systems, and improve the storage and efficiency of constraint-based applications. This article 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 fault tolerant in that they can handle and recover gracefully 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 experience with applications written in Garnet have proven the usefulness of pointer variable constraints. Many large-scale applications have been implemented using these constraints.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
ALDUSS. 1990. Alduss Intellidraw. Alduss Corp., 1990.
|
 |
3
|
|
 |
4
|
|
 |
5
|
|
 |
6
|
Alan Borning , Robert Duisberg , Bjorn Freeman-Benson , Axel Kramer , Michael Woolf, Constraint hierarchies, Conference proceedings on Object-oriented programming systems, languages and applications, p.48-60, October 04-08, 1987, Orlando, Florida, United States
|
 |
7
|
|
| |
8
|
|
 |
9
|
Bjorn N. Freeman-Benson, Kaleidoscope: mixing objects, constraints, and imperative programming, Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications, p.77-88, September 1990, Ottawa, Canada
|
 |
10
|
|
 |
11
|
|
| |
12
|
GOSLING, J. 1983. Algebraic constraints. Tech. Rep. CMU-CS-83-132, Computer Science Dep., Carnegie Mellon Univ., Pittsburgh, Pa.
|
 |
13
|
|
 |
14
|
|
| |
15
|
|
 |
16
|
|
| |
17
|
|
| |
18
|
|
 |
19
|
|
| |
20
|
HUDSON, S. E. 1993. A system for efficient and flexible one-way constraint evaluation in C + +. Tech. Rep. 93-15, Graphics Visualization and Usability Center, College of Computing, Georgia Inst. of Technology, Atlanta, Ga.
|
 |
21
|
|
| |
22
|
HUDSON, S.E. 1990. An enhanced spreadsheet model for user interface specification. Tech. Rep. TR90-33, The Univ. of Arizona, Tucson, Ariz.
|
 |
23
|
|
 |
24
|
|
 |
25
|
|
 |
26
|
|
| |
27
|
LELF, a, W. 1900. Coa~traint Programming Languages: Their Specification and Generation. Addison-Wesley, Reading, Mass.
|
| |
28
|
LI, J. 1991. Constraint hierarchies as triangular systems. Tech. Rep. TRITA-NA-P9130, Dept. of Numerical Analysis and Computing Science, Royal Inst. of Technology, Stockholm, Sweden.
|
 |
29
|
|
 |
30
|
|
| |
31
|
|
 |
32
|
|
| |
33
|
|
| |
34
|
Brad A. Myers , Dario A. Giuse , Roger B. Dannenberg , David S. Kosbie , Edward Pervin , Andrew Mickish , Brad Vander Zanden , Philippe Marchal, Garnet: Comprehensive Support for Graphical, Highly Interactive User Interfaces, Computer, v.23 n.11, p.71-85, November 1990
[doi> 10.1109/2.60882]
|
| |
35
|
|
| |
36
|
|
 |
37
|
|
 |
38
|
B. A. Myers , B. V. Zanden , R. B. Dannenberg, Creating graphical interactive application objects by demonstration, Proceedings of the 2nd annual ACM SIGGRAPH symposium on User interface software and technology, p.95-104, November 13-15, 1989, Williamsburg, Virginia, United States
[doi> 10.1145/73660.73672]
|
 |
39
|
|
 |
40
|
|
| |
41
|
|
| |
42
|
SANNELLA, M, 1992. The SkyBlue constraint solver. Tech. Rep. 92-07-02, Computer Science Dept., Univ. of Washington, Seattle, Wash.
|
| |
43
|
SANNELLA, M. AND BORNING, A. 1992. Multi-Garnet: Integrating multi-way constraints with Garnet. Tech. Rep. 92-07-01, Dept. of Computer Science and Engineering, Univ. of Washington, Seattle, Wash.
|
| |
44
|
|
| |
45
|
SLEATOR, D. D., AND DIETZ, P.F. 1988. Two algorithms for maintaining order in a list. Tech. Rep. CMU-CS-88-113, Carneige Mellon Univ., Pittsburgh, Pa.
|
| |
46
|
STEELE, G. L., JR. 1980. The definition and implementation of a computer programming language based on constraints. Ph.D. thesis, Dep. of Computer Science, MIT, Boston, Mass.
|
| |
47
|
SUTHERLAND, I. E. 1963. Sketchpad: A man-machine graphical communication system. In AFIPS Spring Joint Computer Conference. AFIPS, Washington, D.C., 329-346.
|
 |
48
|
|
 |
49
|
|
| |
50
|
|
 |
51
|
|
| |
52
|
|
 |
53
|
|
 |
54
|
|
CITED BY 18
|
|
|
|
|
|
|
|
Krishna A. Bharat , Scott E. Hudson, Supporting distributed, concurrent, one-way constraints in user interface applications, Proceedings of the 8th annual ACM symposium on User interface and software technology, p.121-132, November 15-17, 1995, Pittsburgh, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
Bradley T. Vander Zanden , Richard Halterman , Brad A. Myers , Rich McDaniel , Rob Miller , Pedro Szekely , Dario A. Giuse , David Kosbie, Lessons learned about one-way, dataflow constraints in the Garnet and Amulet graphical toolkits, ACM Transactions on Programming Languages and Systems (TOPLAS), v.23 n.6, p.776-796, November 2001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Graham Smith , Tim Salzman , Wolfgang Stuerzlinger, 3D scene manipulation with 2D devices and constraints, No description on Graphics interface 2001, p.135-142, June 07-09, 2001, Ottawa, Ontario, Canada
|
|
|
Brad A. Myers , Richard G. McDaniel , Robert C. Miller , Alan S. Ferrency , Andrew Faulring , Bruce D. Kyle , Andrew Mickish , Alex Klimovitski , Patrick Doane, The Amulet Environment: New Models for Effective User Interface Software Development, IEEE Transactions on Software Engineering, v.23 n.6, p.347-365, June 1997
|
|
|
|
|
|
|
|