Lecture Notes in Computer Science vol:5649 pages:534-535
International Conference on Logic Programming edition:25 location:Pasadena, California, U.S.A. date:14-17 July 2009
Constraint Handling Rules (CHR) is a high-level programming language, designed for the easy implementation of custom constraint solvers. CHR is a language-extension, built on top of Java, C and half a dozen Prolog-variants. The language is currently used in many projects.
In contrast to earlier approaches, CHR has a ''no box''-approach and thus can implement any sort of solvers. Of course this affects the efficiency of the obtained solver. In order to obtain the same level of efficiency, we need analysis tools to detect the properties of a CHR program that lead to optimizations.
In CHR, termination is one of the most important properties of a program. Other important properties, such as confluence can be decided given termination. But also for the programmer this is an important property. CHR is a multi-headed language in which loops are often much more difficult to detect than in single-headed languages such as Prolog.