(1803 - 1882), US philosopher, poet, essayist
System Summary
The K.U.Leuven JCHR System is an integration of Java and Constraint Handling Rules (CHR) designed with three aims in mind: user-friendliness, flexibility and efficiency.
User-friendliness is achieved by providing a high-level rule-based syntax that feels familiar to both Java programmers and users of other CHR embeddings, and by full compliance to the refined operational semantics. Flexibility is the result of a well thought-out design, allowing e.g. an easy integration of built-in constraint solvers and variable types. An optimized compilation to Java code and the use of a very efficient constraint store make the performance of the K.U.Leuven JCHR System competitive with that of state of the art CHR implementations in e.g. Prolog and HAL.
Recent news
- 17-11-2009
- The CHR 2010 Workshop will be held July 20, 2010 in Edinburgh (Scotland) at the occasion of ICLP 2010 (part of FLoC 2010), the premier international venue for presenting research in logic programming. The first call for papers is available.
- 23-10-2009
- Both the CHR survey and the TKDE article on CHR compilation are accepted for publication. The CHR 2009 workshop paper has been published as well. See the publications page for more details.
- 10-03-2008
- K.U.Leuven JCHR version 1.6.0 has been released. The new version is typically almost twice as fast as the previous versions! Code generation has been rewritten from scratch, new analyses and optimizations have been added, stack overflow issues have been eliminated, and much, much more. Debug and trace support no longer works in this release, but will be restored in an upcomming version.
Features
- The K.U.Leuven JCHR System is 100% Java and 100% open source.
-
JCHR
is a powerful forward-chaining rule-based language,
closely related to other declarative programming paradigms as
(concurrent) constraint programming and with flavors
of logic programming.
It is indeed save to say JCHR is a multi-paradigm programming language, allowing you to use the right solution strategy for the right problem. - CHR allows for very high-level, declarative programming of constraint-based algorithms and applications. Although originally designed for the declaration of incremental constraint solvers, CHR has been used in a more than 100 projects and applications world-wide, for a wide range of areas - including natural language processing, multi agent systems and type system desing.
- Java Constraint Handling Rules (JCHR) is a syntax designed to allow easy porting from/to other CHR systems, to feel familiar to Java programmers, whilst still maintaining the very high level, declarative programming capabilities inherited from CHR.
- The intuitive operational semantics of CHR - fully adopted by JCHR - could remedy the lack of simple semantics sometimes perceived in other rule-based systems (cf. e.g. this opinion, or this one). Based on first order predicate logic, the clean semantics of CHR also facilitates non-trivial program analysis and transformation, resulting in very efficient operational constraint systems. JCHR is currently the most efficient implementation of CHR in Java, and its performance is competitive with state-of-the-art CHR systems in e.g. HAL and Prolog.
- CHR can be used to implement each algorithm with optimal time complexity, using near pseudo-code syntax. Examples of algorithms that have been implemented efficiently in CHR include classical algorithms as Dijkstra's shortest path algorithm (using an efficient CHR based implementation of a non-trivial data-structure called fibonacci-heaps), efficient calculation of Fibonacci numbers, Tarjan's union-find and the Sieve of Erathostenes.
- For a further overview of the systems' features we also recommend taking a look at the examples page.
Recent Publications
- Peter Van Weert and Leslie De Koninck and Jon Sneyers. A Proposal for a Next Generation of CHR, Sixth Intl. Workshop on Constraint Handling Rules (CHR'09), Pasadena, California (Raiser, F., and Sneyers, J., eds.), July 2009, to appear. [paper]
- Slim Abdennadher and Shehab Fawzy. JCHRIDE: An Integrated Development Environment for JCHR, 22nd Workshop on (Constraint) Logic Programming, Dresden, Germany (Schwarz, S., ed.), pp 1-6, September 2008. [paper, proceedings]
- Jon Sneyers, Peter Van Weert, Tom Schrijvers and Leslie De Koninck. As Time Goes By: Constraint Handling Rules – A Survey of CHR Research from 1998 to 2007, Journal of Theory and Practice of Logic Programming (TPLP), to appear. [draft]
- Peter Van Weert, Pieter Wuille, Tom Schrijvers, and Bart Demoen. CHR for Imperative Host Languages, Constraint Handling Rules — Current Research Topics (Schrijvers, T., and Frühwirth, T., eds.), volume 5388 of Lecture Notes in Artificial Intelligence, pp 161-212, December 2008. [article, book, BibTeX, benchmarks ]
- Peter Van Weert. Optimization of CHR Propagation Rules, 24rd Intl. Conference on Logic Programming (ICLP'08), Udine, Italy (Garcia de la Banda, M. and Pontelli, E., eds.), volume 5366 of Lecture Notes in Computer Science, pp 485-100, December 2008. [paper, draft, extended report, BibTeX]
Related Links
Contact Information
If you want more info, please contact: