Lessons learned about one-way, dataflow constraints in the Garnet and Amulet graphical toolkits
- 1 November 2001
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 23 (6) , 776-796
- https://doi.org/10.1145/506315.506318
Abstract
One-way, dataflow constraints are commonly used in graphical interface toolkits, programming environments, and circuit applications. Previous papers on dataflow constraints have focused on the design and implementation of individual algorithms. In contrast, this article focuses on the lessons we have learned from a decade of implementing competing algorithms in the Garnet and Amulet graphical interface toolkits. These lessons reveal the design and implementation tradeoffs for different one-way, constraint satisfaction algorithms. The most important lessons we have learned are that (1) mark-sweep algorithms are more efficient than topological ordering algorithms; (2) lazy and eager evaluators deliver roughly comparable performance for most applications; and (3) constraint satisfaction algorithms have more than adequate speed, except that the storage required by these algorithms can be problematic.Keywords
This publication has 18 references indexed in Scilit:
- Static caching for incremental computationACM Transactions on Programming Languages and Systems, 1998
- User interface specification using an enhanced spreadsheet modelACM Transactions on Graphics, 1994
- The Rendezvous architecture and language for constructing multiuser applicationsACM Transactions on Computer-Human Interaction, 1994
- AlphonseACM SIGPLAN Notices, 1992
- Incremental attribute evaluationACM Transactions on Programming Languages and Systems, 1991
- Creating user interfaces using programming by example, visual programming, and constraintsACM Transactions on Programming Languages and Systems, 1990
- Semantic feedback in the Higgens UIMSIEEE Transactions on Software Engineering, 1988
- An object-oriented approach to graphical interfacesACM Transactions on Graphics, 1986
- The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation LaboratoryACM Transactions on Programming Languages and Systems, 1981
- Semantics of context-free languagesTheory of Computing Systems, 1968