OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
A module mechanism for constraints in Smalltalk
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
An incremental constraint solver
Communications of the ACM
Constraint satisfaction and debugging for interactive user interfaces
Constraint satisfaction and debugging for interactive user interfaces
An incremental algorithm for satisfying hierarchies of multiway dataflow constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Inductive graphs and functional graph algorithms
Journal of Functional Programming
Property models: from incidental algorithms to reusable components
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Sketchpad: a man-machine graphical communication system
AFIPS '63 (Spring) Proceedings of the May 21-23, 1963, spring joint computer conference
Graph Theory
Algorithms for user interfaces
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Computational complexity of multi-way, dataflow constraint problems
IJCAI'97 Proceedings of the 15th international joint conference on Artifical intelligence - Volume 1
Helping programmers help users
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Hi-index | 0.00 |
Here multi-way data-flow constraints systems are viewed as commutative monoids. A multi-way data-flow constraints system consists of a collection of constraints, each constraint being represented as a set of directed graphs. The monoid's binary operation between two constraints is defined as the set of (non-disjoint) graph unions between all possible pairs of graphs, choosing one graph from each constraint, such that the result of the union satisfies the conditions of a valid solution. This clearly is a commutative, associative operation, with the constraint containing the null graph as the neutral element. For a given constraint system, the carrier of the corresponding monoid is the closure of all combinations of constraints from the system. This then unifies the entire multi-way data-flow constraint system with a single constraint. This generic view is not at all a drastic departure of the established descriptions of multi-way data-flow constraint systems. Defining this generic view explicitly, however, makes several properties of and algorithms operating on constraint systems obvious. For example, a constraint system can be solved by folding the monoid's binary operator over the system's constraints. An example implementation in Haskell is described.