CHR(Curry): Interpretation and Compilation of Constraint Handling Rules in Curry

by Michael Hanus

Proc. of the 17th International Symposium on Practical Aspects of Declarative Languages (PADL 2015), Springer LNCS 9131, pp. 74-89, 2015
© Springer-Verlag

Constraint Handling Rules (CHR) is a rule-based language to specify application-oriented constraint solvers. CHR requires a host language that provides the basic constraints used in a CHR program. In this paper, we argue that an integrated functional logic language like Curry is an appropriate host language for CHR since it supports a natural formulation of constraint handling rules and a seamless integration into a typed environment. As a proof of concept, we describe CHR(Curry), an integration of CHR into Curry, together with two implementations. The first is an interpreter of CHR's refined operational semantics implemented in Curry, and the second compiles CHR rules into Prolog which can be directly used in Prolog-based Curry implementations, such as PAKCS.

Preprint (PDF) BibTeX-Entry Online