Next: Invoking the extended CHR
Up: The Constraint Handling Rules
Previous: Using the Debugger
A new, extended, chr library has been developed, with the intention of providing
the basis for a system that will allow more optimisations than the previous
implementation. At the same time, some of the syntax of the CHR has
been changed to conform better to standard Prolog.
The system is still experimental, and provides no special support for
debugging CHR code. Please report any problems encountered while
using this system.
The main user visible differences from the original chr library are as
follows:
- The extended library produces code that generally runs about twice as fast
as the old non-debugging code. It is expected that further improvements
should be possible.
- CHR code is no longer compiled with a special command - the normal
compile command will now recognise and compile CHR code when the extended
chr library is loaded. No intermediate Prolog file is produced. The
.chr extension is no longer supported implicitly.
- Syntax of some operators have been changed to conform better to standard
Prolog.
- A framework for supporting more than two head constraints has been
introduced. However, support for propagation rules with more than two heads
have not yet been added. Simplification and simpagation rules with more
than two heads are currently supported.
- The compiler does not try to reorder the CHR any more. Instead,
they are ordered in the way they are written by the user.
- label_with is no longer supported. It can be replaced with
user defined labelling.
- The operational semantics of rules have been clarified.
- There is no special support for debugging yet. The CHR code would be
seen by the debugger as the transformed Prolog code that is generated by
the compiler.
Joachim Schimpf
Sun Jul 19 22:34:17 BST 1998