Gewidmet meiner Frau Nabila in Liebe.
Abstract:
Constraint-based programming languages enjoy both elegant theoretical properties and practical success. As it runs, a constraint-based program successively generates pieces of partial information called constraints. The constraint solver has the task to collect, combine, and simplify the constraints, and detect their inconsistency. Intuitively, constraints represent elementary relationships between variables and values, for example equality or some order relationships. Clearly, the abilities and quality of the constraint solver play an essential role in constraint-based programming. In the beginning, constraint solving was \hard-wired " in a built-in constraint solver written in a low-level language, termed the \black-box " approach. While ecient, this approach makes it hard to modify a solver or build a solver over a new domain, let alone reason about and analyze it. As the behavior of the solver can neither be inspected by the user nor explained by the computer, debugging of constraint-based programs is hard. Also, one lesson learned from practical
Citations
| 79 | M.: Constraint Satisfaction Using Constraint Logic Programming – Hentenryck, Simonis, et al. - 1994 |
| 76 | Practical Applications of Constraint Programming – Wallace - 1996 |
| 5 | Adding Bottom-up Evaluation to Prolog – Wunderwald - 1996 |
| 3 | Semantic Query Optimization through Abduction and Constraint Handling – Wetzel, Toni - 1998 |
| 2 | DJ: A java-based constraint language and system – Zhou, Kaneko, et al. - 1998 |

