Many different programming languages have been extended with CHR. On this page you can download several CHR systems. There are also interesting extensions of CHR and programming tools for CHR.
If you just want to try CHR without much hassle, try the WebCHR Interactive Demo.
CHR(Prolog) systems
The Leuven CHR System is a state-of-the-art CHR system. It is available in the following Prolog systems:
- SWI-Prolog (recommended CHR(Prolog) system)
- XSB
- YAP
- Ciao Prolog
- B-Prolog
- SICStus Prolog
- hProlog
Other CHR(Prolog) systems:
- CHRrp: CHR extended with rule priorities
- CHRat: CHR with ask and tell, a modular CHR system
- CHORD: an object-oriented extension of CHRv
- ToyCHR: a pure Prolog implementation
- HAL includes a CHR system
- ECLiPSe includes a CHR system
- CHR in Curry (a functional logic language)
CHR(Java) systems
The recommended CHR(Java) system is the Leuven JCHR system. An older CHR(Java) system is JCK: the Java Constraint Kit. Also, older versions of CHORD were implemented in Java.
CHR(Haskell) systems
There are several CHR systems for Haskell:
- HaskellCHR
- STM-based concurrent CHR implementation
- CCHR: another STM-based concurrent CHR implementation
CHR(C) system
CCHR is an efficient implementation of CHR in C.