|
Thom Frühwirth Textbook, Cambridge University Press, ISBN 9780521877763, 2009.
"The reference on Constraint Handling Rules, covering both theory and
practice."
"This is a great book illustrating both the simplicity and power of Constraint
Handling Rules, the purest form of rule based programming I know." The standard reference authored by the designer of CHR - Provides a CHR tutorial for easy introduction - An essential source for researchers, lecturers, graduate students and professional programmers Order at Cambridge University Press, amazon.de, amazon.co.uk, amazon.com.
|
|
"CHR was designed as a language for defining constraint solvers, but at the same
time it is one of the most powerful multiset rewriting languages."
Professor Kazunori Ueda, Waseda University, Japan, and Norio Kato in
'Programming Logical Links'
"...a powerful, highly
optimized, lazy rule engine, building on [...] novel analyses and optimizations recently
produced by the CHR community. [...]
Our empirical study again shows that for many problems
and practical applications, a lazy approach [taken by CHR] consistently
outperforms Rete-based [rule-based] systems."
Peter Van Weert, K.U. Leuven, in 'Efficient Lazy Evaluation of Rule-Based Programs'
"... [Concurrent CHR in Haskell] exhibits significant speed up in most problems when executed on multi-core systems."
Members of the National University of Singapore at the Concurrent Constraint Handling Rules Home Page
"Since CHR seems to subsume most of the other formalisms that have
been related to it, it has the potential to become a lingua franca, a hub which
collects and dispenses research efforts from and to the various related fields."
Jon Sneyers, K.U. Leuven, in 'Optimizing Compilation and Complexity of CHR'
Constraint Handling Rules (CHR) is both a versatile theoretical formalism based on logic and an efficient practical high-level programming language based on rules and constraints.
Procedural knowledge is often expressed by if-then rules, events and actions are related by reaction rules, change is expressed by update rules. Algorithms are often specified using inference rules, rewrite rules, transition rules, sequents, proof rules, or logical axioms. All these kinds of rules can be directly written in CHR. The clean logical semantics of CHR facilitates non-trivial program analysis and transformation. About a dozen implementations of CHR exist in Prolog, Haskell, Java and C. Some of them allow to apply millions of rules per second. CHR is also available as WebCHR for online experimentation with more than 40 example programs. More than 100 academic and industrial projects worldwide use CHR, and more than 1000 research papers reference it.

Stock Broking - Contact: Mike Elston, Director of Systems Development, SecuritEase, Wellington, New Zealand.

Injection Mold Design - Contact: Alan Baljeu, President, Cornerstone Intelligent Software Corp, Windsor, Canada.

Optical Network Routing - Contact: Jonathan Weston-Dawkes, Mitre Corp, Bedford, USA.

Automatic Test Data Generation - Contact: Ralf Gerlich, BSSE, Immenstaad, Germany.
This book, written by the creator of Constraint Handling Rules (CHR), describes the theory of CHR and how to use it in practice. It is supported by a website containing teaching materials, online demos, and free downloads of the language. After a basic tutorial, the author describes in detail the CHR language and discusses guaranteed properties of CHR programs. The author then compares CHR with other formalisms and languages and illustrates how it can capture their essential features. Finally, larger programs are introduced and analyzed in detail. The book is ideal for graduate students and lecturers, and for more experienced programmers and researchers, who can use it for self-study. Exercises with selected solutions, and bibliographic remarks are included at the ends of chapters. The book is the definitive reference on the subject.
Preface
Part I. CHR Tutorial:
1. Getting started
2. My first CHR programs
Part II. The CHR Language:
3. Syntax and semantics
4. Properties of CHR
5. Program analysis
6. Rule-based and graph-based formalisms in CHR
Part III. CHR Programs and Applications:
7. My first CHR programs, revisited for
analysis
8. Finite domain constraint solvers
9. Infinite domain constraint
solvers
10. Union-find algorithm
Bibliography
List of figures
List of
illustrations
Index.
Contents and Preface (draft version). Book excerpt: First Steps in CHR.
WebCHR: Test-Drive CHR. Run CHR online now! Play with 40+ example programs or write your own.
Some CHR implementations in Prolog
The K.U.Leuven CHR system
is available in the following Prolog systems:
SWI Prolog,
Sicstus Prolog,
Yap Prolog,
XSB Prolog,
hProlog,
B-Prolog,
Ciao Prolog.
ToyCHR (simple compiler and interpreter for any Prolog).
Old CHR User Manual for Sicstus Prolog 3.7.1 (html).
Some CHR implementations in Java, C and Haskell
JCHR, K.U. Leuven CHR in
Java
CHORD (CHR Java extension) prototype
Old Java
Constraint Kit (JCK) pre-release
CCHR: STM-based
Concurrent CHR in Haskell
HaskellCHR
Some other software involving CHR
The INCLP(R) Nonlinear Arithmetic Constraint Solver
An extensible Eclipse platform for analysing graph transformation systems in CHR (Eclipse Plug-in)
Courses by the author based on the book were held for example at the University of Ulm in 2009 (and every year thereafter), and at the University of Venice in 2009.
CHR book Chapter 1
CHR book Chapter 2
CHR book Chapter 3
CHR book Chapter 4
CHR book Chapter 5
CHR book Chapter 6
CHR book Chapter 7
Slides are in pdf format, as of June 2009. More to come.
A CHR course should be combined with a practical lab course.
The book contains 55 exercises, here are some of the book and some new ones:
CHR Exercises, May 2009, edited by Hariolf Betz.
Exercise 1,
Exercise 2,
Exercise 3,
Exercise 4,
Exercise 5.
CHR Exercises, February 2009, edited by Hariolf Betz.
Exercise 2,
Exercise 3,
Exercise 4 (boole.pl),
Exercise 5,
Exercise 6 (dl-ex6.pl),
Exercise 7 (fd-ex7.pl).
CHR Exercises, March 2006, edited by Marc Meister.
Exercise 5,
Exercise 6,
Exercise 7,
Exercise 8,
Exercise 9,
Exercise 10,
Exercise 11,
Exercise 12,
Exercise 13.
Wikipedia on
CHR
CHR
Summary (2 pages) "The story so far"
CHR
Tutorial Slides
Book excerpt: First Steps in CHR
Welcome to Constraint Handling Rules
CHR
survey
Hand-selected CHR
bibliography with 300 papers by 150 authors
1000+
research papers mentioning Constraint Handling Rules
All you ever
wanted to know about CHR (CHR website)
WebCHR: Test-Drive CHR. Run CHR online now!
The CHR Working Week 2009
Thom Frühwirth, updated November 19, 2009