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.
- A~o, A. V., HOPCROFT, E., AND ULLMAN, J. D. 1974. The Design and Analysis of Computer Algorithms. Addison-Wesley, Reading, Mass. Google Scholar
- ALDUSS. 1990. Alduss Intellidraw. Alduss Corp., 1990.Google Scholar
- BARTH, P. 1986. An object-oriented approach to graphical interfaces. ACM Trans. Graph. 5 2 (Apr.), 142-172. Google Scholar
- BORmN% A. 1981. The programming language Aspects of ThingLab; a constraint-oriented simulation laboratory. ACM Trans. Program. Lang. Syst. 3, 4 (Oct.), 353-387. Google Scholar
- BORNING, A. AND DUISBERG, R. 1986. Constraint-based tools for building user interfaces. ACM Trans. Graph. 5, 4 (Oct.), 345-374. Google Scholar
- BORNING, A., DUIDBERO, R., FREi~MAN-BENSON, B., KRAMER, A., AND WOOLF, M. 1987. Constraint hierarchies. In OOPSLA'87 Conference Proceedings. AMC, New York, 48-60. Google Scholar
- COHEN, J. 1990. Constraint logic programming languages. Commun. ACM 33, 8 (July), 52-68. Google Scholar
- DENNIS, J. E., JR., AND SCHNABEL, R.B. 1983. Numerical Methods for Unconstrained Optimization and Nonlinear Equations. Prentice-Hall, Englewood Cliffs, N.J. Google Scholar
- FREEMAN-BENSON, B.N. 1990. Kaleidoscope: Mixing objects, constraints, and imperative programming. OOPSLA/ECOOP'90 Conference Proceedings. ACM, New York, 77-88. Google Scholar
- FREEMAN-BENSON, B.N. 1989. A module mechanism for constraints in Smalltalk. Sigplan Not. 24, 10 (Oct.), 389-396. Google Scholar
- FREEMAN-BENSON, B. N., MALONEY, J., AND BOaNING, A. 1990. An incremental constraint solver. Commun. ACM 33, i (Jan.), 54-63. Google Scholar
- GOSLING, J. 1983. Algebraic constraints. Tech. Rep. CMU-CS-83-132, Computer Science Dep., Carnegie Mellon Univ., Pittsburgh, Pa.Google Scholar
- HENRY, T. R. AND HUDSON, S. E. 1988. Using active data in a UIMS. In ACM SIGGRAPH Symposium on User Interface Software and Technology, Proceedings UIST'88 (Banff, Alberta, Canada). ACM, New York, 167-178. Google Scholar
- HILL, R. D. 1993. The Rendezvous constraint maintenance system. In ACM SIGGRAPH Symposium on User Interface Software and Technology, Proceedings UIST'93. ACM, New York, 225-34. Google Scholar
- HILL, R. D. 1992. Languages for the construction of multi-user multi-media synchronous (MUMMS) applications. In Languages for Developing User Interfaces, Brad A. Myers, Ed. Jones and Bartlett Publishers, Boston, Mass., 125-143. Google Scholar
- HOOVER, R. 1992. Alphonse: Incremental computation as a programming abstraction. S~gplan Not. 27, 7 (July), 261-272. Google Scholar
- HOVER, R. 1987. Incremental graph evaluation. Ph.D. thesis, Dept. of Computer Science, Cornell Univ., Ithaca, N.Y. Google Scholar
- HORN, B. 1992a. Properties of user interface systems and the Siri programming language. In Languages for Developing User Interfaces. Jones and Barlett Publishers, Boston, Mass., 211-238. Google Scholar
- HORN, B. 1992b. Constraint patterns as a basis for object oriented programming. Sigplan Not. 27, 10 (Oct.), 218-233. Google Scholar
- 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.Google Scholar
- HUDSON, S.E. 1991. Incremental attribute evaluation: A flexible algorithm for lazy update. ACM Trans. Program. Lang. Syst. 13, 3 (July), 315-341. Google Scholar
- HUDSON, S.E. 1990. An enhanced spreadsheet model for user interface specification. Tech. Rep. TR90-33, The Univ. of Arizona, Tucson, Ariz.Google Scholar
- HUDSON, S. E. 1989. Graphical specification of flexible user interface displays. In ACM SIGGRAPH Symposium on User Interface Software and Technology, Proceedtngs UIST'89. ACM, New York, 105-114. Google Scholar
- JAFFAR, J. AND LASSEZ, J. 1987. Constraint logic programming. In Proceedings of the Principles of Programming Languages Conference (Munich, Germany, Jan.) ACM, New York, 111-119. Google Scholar
- JAFFAR, J., MICHAYLOV, S., STUCKY, P. J., AND YAP, R. H.C. 1992. The CLP(R) language and system. ACM Trans Program. Lang. Syst. 14, 3 (July), 339-395. Google Scholar
- KAMADA, T. AND KAWAr, S. 1990. A general framework for visualizing abstract objects and relations. ACM Trans. Graph. 10, i (Jan.), I 39. Google Scholar
- LELF, a, W. 1900. Coa~traint Programming Languages: Their Specification and Generation. Addison-Wesley, Reading, Mass.Google Scholar
- 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.Google Scholar
- MALONEY, J., BORNING, A., AND FREEMAN-BENSON B. 1989. Constraint technology for user-interface construction in ThingLabII. Sigplan Not. 24, 10 (Oct.), 381-388. Google Scholar
- MAULSBY, D., WITTEN, I. H., AND KITTLITZ, K. A. 1989. Metamouse: Specifying graphical procedures by example. In SIGGRAPH'89. ACM, New York, 127-136. Google Scholar
- MYERS, B.A. 1992. Demonstrational interfaces: A step beyond direct manipulation. IEEE Comput. 25, 8 (Aug), 61-73. Google Scholar
- MYERS, B.A. 1991. Graphical techniques in a spreadsheet for specifying user interfaces. In Human Factors in Computing Systems, Proceedings SIGCHI'91. ACM, New York, 243-249. Google Scholar
- MYERS, B.A. 1988. Creating User Interfaces by Demonstration. Academic Press, Boston, Mass. Google Scholar
- MYERS, B. A., GIUSE, D. A., DANNENBERG, R. B., VANDER ZANDEN, B., KOSBIE, D. S., PERVIN, E., MICKISH, A., AND MARCHAL, P. 1990. Garnet: Comprehensive support for graphical, highlyinteractive user interfaces. IEEE Comput. 23, 11 (Nov.), 71-85. Google Scholar
- MYERS, B. A. AND ZANDEN, B. VANDER. 1992. An environment for rapid creation of interactive design tools. Vis. Comput. Int. Comput. Graph. 8, 3, 94-116. Google Scholar
- MYERS, B., G1USE, D. A., MICKISH, A., AND KOSBIE D.S. 1994. Making structured graphics and constraints practical for large-scale applications. Carnegie Mellon Univ. School of Computer Science Tech. Rep. CMU-CS-94-150 and Human Computer Interaction Inst. Tech. Rep. CMU- HCII-94-100, Pittsburgh, Pa. Google Scholar
- MYERS, B. A., GIUSE, D. A., AND VANDER ZANDEN, B. 1992. Declarative programming in a prototype-instance system: Object-oriented programming without writing methods. Sigplan Not. 27, 10 (Oct.), 184-200. Google Scholar
- MYERS, B. A., VANDER ZANDEN, B., AND DANNENBERG, R.B. 1989. Creating graphical interactive application objects by demonstration. In ACM SIGGRAPH Symposium on User Interface Software and Technology, Proceedings UIST'89. ACM, New York, 95-104. Google Scholar
- NELSON, G. 1985. Juno a constraint-based graphics system. In Computer Graphics, Proceedings ofSIGGRAPH'85. ACM, New York, 235 243. Google Scholar
- REPS, T., TEITELBAUM, T., AND DEMERS, A. 1983. Incremental context-dependent analysis for language-based editors. ACM Trans. Program. Lang. Syst. 5, 3 (July), 449-477. Google Scholar
- REPS, T. AND TEITELBAUM, T. 1988. The Synthesizer Generator. Springer-Verlag, New York. Google Scholar
- SANNELLA, M, 1992. The SkyBlue constraint solver. Tech. Rep. 92-07-02, Computer Science Dept., Univ. of Washington, Seattle, Wash.Google Scholar
- 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.Google Scholar
- SARASWAT, V.A. 1989. Concurrent constraint programming languages. Ph.D. thesis, School of Computer Science, Carnegie Mellon Univ., Pittsburgh, Pa. Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- SUTHERLAND, I. E. 1963. Sketchpad: A man-machine graphical communication system. In AFIPS Spring Joint Computer Conference. AFIPS, Washington, D.C., 329-346.Google Scholar
- SZEKELY, P. A., AND MYERS, B.A. 1988. A user interface toolkit based on graphical objects and constraints. Sigplan Not. 23, ll (Nov.), 36-45. Google Scholar
- VAN WYK, C.J. 1982. A high-level language for specifying pictures. ACM Trans. Graph. 1, 2 (Apr.), 163-182. Google Scholar
- VANDER ZANDEN, B. T. 1992. A domain-independent algorithm for incrementally satisfying multi-way constraints. Teeh. Rep. CS-92-160, Univ. of Tennessee, Knoxville, Tenn. Google Scholar
- VANDER ZANDEN, B. T. 1989. Constraint grammars--A new model for specifying graphical applications. In Haman Factors in Computing Systems, Proceedings SIGCHI'89. ACM, New York, 325-330. Google Scholar
- VANDER ZANDEN, B.T. 1988. Incremental constraint satisfaction and its application to graphical interfaces. Ph.D. thesis, Cornell Univ., Ithaca, N.Y. Google Scholar
- WINK, M.R. 1991. Equate: An object-oriented constraint solver. Sigplan Not. 26, 11 (Nov.), 286-298. Google Scholar
- WIT~UN, A. AND WELCH, W. 1990. Fast animation and control of nonrigid structures. In Computer Graphics: SIGGRAPH'90 Conference Proceedings. ACM, New York, 243-252. Google Scholar
Index Terms
- Integrating pointer variables into one-way constraint models
Recommendations
Constraint Hierarchies as Semiring-Based CSPs
ICTAI '09: Proceedings of the 2009 21st IEEE International Conference on Tools with Artificial IntelligenceConstraints provide an effective means for the high-level modeling and reasoning of various problems. In particular, soft constraints are useful since they treat over-constrained problems that naturally arise in real-life applications. Therefore, ...
ICHEA for discrete constraint satisfaction problems
AI'12: Proceedings of the 25th Australasian joint conference on Advances in Artificial IntelligenceConstraint satisfaction problem (CSP) is a subset of optimization problem where at least one solution is sought that satisfies all the given constraints. Presently, evolutionary algorithms (EAs) have become standard optimization techniques for solving ...
Comments