skip to main content
article
Free Access

Integrating pointer variables into one-way constraint models

Published:01 June 1994Publication History
Skip Abstract Section

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

  1. A~o, A. V., HOPCROFT, E., AND ULLMAN, J. D. 1974. The Design and Analysis of Computer Algorithms. Addison-Wesley, Reading, Mass. Google ScholarGoogle Scholar
  2. ALDUSS. 1990. Alduss Intellidraw. Alduss Corp., 1990.Google ScholarGoogle Scholar
  3. BARTH, P. 1986. An object-oriented approach to graphical interfaces. ACM Trans. Graph. 5 2 (Apr.), 142-172. Google ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. BORNING, A. AND DUISBERG, R. 1986. Constraint-based tools for building user interfaces. ACM Trans. Graph. 5, 4 (Oct.), 345-374. Google ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. COHEN, J. 1990. Constraint logic programming languages. Commun. ACM 33, 8 (July), 52-68. Google ScholarGoogle Scholar
  8. DENNIS, J. E., JR., AND SCHNABEL, R.B. 1983. Numerical Methods for Unconstrained Optimization and Nonlinear Equations. Prentice-Hall, Englewood Cliffs, N.J. Google ScholarGoogle Scholar
  9. FREEMAN-BENSON, B.N. 1990. Kaleidoscope: Mixing objects, constraints, and imperative programming. OOPSLA/ECOOP'90 Conference Proceedings. ACM, New York, 77-88. Google ScholarGoogle Scholar
  10. FREEMAN-BENSON, B.N. 1989. A module mechanism for constraints in Smalltalk. Sigplan Not. 24, 10 (Oct.), 389-396. Google ScholarGoogle Scholar
  11. FREEMAN-BENSON, B. N., MALONEY, J., AND BOaNING, A. 1990. An incremental constraint solver. Commun. ACM 33, i (Jan.), 54-63. Google ScholarGoogle Scholar
  12. GOSLING, J. 1983. Algebraic constraints. Tech. Rep. CMU-CS-83-132, Computer Science Dep., Carnegie Mellon Univ., Pittsburgh, Pa.Google ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. HOOVER, R. 1992. Alphonse: Incremental computation as a programming abstraction. S~gplan Not. 27, 7 (July), 261-272. Google ScholarGoogle Scholar
  17. HOVER, R. 1987. Incremental graph evaluation. Ph.D. thesis, Dept. of Computer Science, Cornell Univ., Ithaca, N.Y. Google ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. HORN, B. 1992b. Constraint patterns as a basis for object oriented programming. Sigplan Not. 27, 10 (Oct.), 218-233. Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  21. HUDSON, S.E. 1991. Incremental attribute evaluation: A flexible algorithm for lazy update. ACM Trans. Program. Lang. Syst. 13, 3 (July), 315-341. Google ScholarGoogle Scholar
  22. HUDSON, S.E. 1990. An enhanced spreadsheet model for user interface specification. Tech. Rep. TR90-33, The Univ. of Arizona, Tucson, Ariz.Google ScholarGoogle Scholar
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle Scholar
  26. KAMADA, T. AND KAWAr, S. 1990. A general framework for visualizing abstract objects and relations. ACM Trans. Graph. 10, i (Jan.), I 39. Google ScholarGoogle Scholar
  27. LELF, a, W. 1900. Coa~traint Programming Languages: Their Specification and Generation. Addison-Wesley, Reading, Mass.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar
  31. MYERS, B.A. 1992. Demonstrational interfaces: A step beyond direct manipulation. IEEE Comput. 25, 8 (Aug), 61-73. Google ScholarGoogle Scholar
  32. 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 ScholarGoogle Scholar
  33. MYERS, B.A. 1988. Creating User Interfaces by Demonstration. Academic Press, Boston, Mass. Google ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. 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 ScholarGoogle Scholar
  36. 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 ScholarGoogle Scholar
  37. 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 ScholarGoogle Scholar
  38. 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 ScholarGoogle Scholar
  39. NELSON, G. 1985. Juno a constraint-based graphics system. In Computer Graphics, Proceedings ofSIGGRAPH'85. ACM, New York, 235 243. Google ScholarGoogle Scholar
  40. 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 ScholarGoogle Scholar
  41. REPS, T. AND TEITELBAUM, T. 1988. The Synthesizer Generator. Springer-Verlag, New York. Google ScholarGoogle Scholar
  42. SANNELLA, M, 1992. The SkyBlue constraint solver. Tech. Rep. 92-07-02, Computer Science Dept., Univ. of Washington, Seattle, Wash.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  44. SARASWAT, V.A. 1989. Concurrent constraint programming languages. Ph.D. thesis, School of Computer Science, Carnegie Mellon Univ., Pittsburgh, Pa. Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  47. SUTHERLAND, I. E. 1963. Sketchpad: A man-machine graphical communication system. In AFIPS Spring Joint Computer Conference. AFIPS, Washington, D.C., 329-346.Google ScholarGoogle Scholar
  48. 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 ScholarGoogle Scholar
  49. VAN WYK, C.J. 1982. A high-level language for specifying pictures. ACM Trans. Graph. 1, 2 (Apr.), 163-182. Google ScholarGoogle Scholar
  50. 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 ScholarGoogle Scholar
  51. 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 ScholarGoogle Scholar
  52. VANDER ZANDEN, B.T. 1988. Incremental constraint satisfaction and its application to graphical interfaces. Ph.D. thesis, Cornell Univ., Ithaca, N.Y. Google ScholarGoogle Scholar
  53. WINK, M.R. 1991. Equate: An object-oriented constraint solver. Sigplan Not. 26, 11 (Nov.), 286-298. Google ScholarGoogle Scholar
  54. 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 ScholarGoogle Scholar

Index Terms

  1. Integrating pointer variables into one-way constraint models

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader