Foundations of logic programming
Foundations of logic programming
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
Practical program analysis using general purpose logic programming systems—a case study
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
Optimizing Compilation of Constraint Handling Rules
Proceedings of the 17th International Conference on Logic Programming
Efficient Real-Time Model Checking Using Tabled Logic Programming and Constraints
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
DATALOG with Constraints: A Foundation for Trust Management Languages
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Metastructures versus Attributed Variables in the Context of Extensible Unification
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Constraint-Based Verification of Client-Server Protocols
CP '01 Proceedings of the 7th International Conference on Principles and Practice of Constraint Programming
XMC: A Logic-Programming-Based Verification Toolset
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Compiling Constraint Handling Rules into Prolog with Attributed Variables
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Cassandra: Flexible Trust Management, Applied to Electronic Health Records
CSFW '04 Proceedings of the 17th IEEE workshop on Computer Security Foundations
Optimizing compilation of constraint handling rules in HAL
Theory and Practice of Logic Programming
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Tchr: A framework for tabled clp
Theory and Practice of Logic Programming
Optimization of CHR Propagation Rules
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
A complete and terminating execution model for constraint handling rules
Theory and Practice of Logic Programming
Concurrent goal-based execution of constraint handling rules
Theory and Practice of Logic Programming
Compiling CHR to parallel hardware
Proceedings of the 14th symposium on Principles and practice of declarative programming
Hi-index | 0.00 |
Tabled resolution, which alleviates some of Prolog's termination problems, makes it possible to create practical applications from high-level declarative specifications. Constraint Handling Rules (CHR) is an elegant framework for implementing constraint solvers from high-level specifications, and is available in many Prolog systems. However, applications combining the power of these two declarative paradigms have been impractical since traditional CHR implementations interact poorly with tabling. In this paper we present a new (set-based) semantics for CHR which enables efficient integration with tabling. The new semantics coincides with the traditional (multi-set-based) semantics for a large class of CHR programs. We describe CHRd, an implementation based on the new semantics. CHRd uses a distributed constraint store that can be directly represented in tables. Although motivated by tabling, CHRd works well also on non-tabled platforms. We present experimental results which show that, relative to traditional implementations, CHRd performs significantly better on tabled programs, and yet shows comparable results on non-tabled benchmarks.