Abstract

AbstractConstraint Handling Rules (CHR) is a high-level programming language based on multiheaded multiset rewrite rules. Originally designed for writing user-defined constraint solvers, it is now recognized as an elegant general purpose language. Constraint Handling Rules related research has surged during the decade following the previous survey by Frühwirth (J. Logic Programming, Special Issue on Constraint Logic Programming, 1998, vol. 37, nos. 1–3, pp. 95–138). Covering more than 180 publications, this new survey provides an overview of recent results in a wide range of research areas, from semantics and analysis to systems, extensions, and applications.

Highlights

  • Constraint Handling Rules (CHR) is a high-level programming language based on multiheaded multiset rewrite rules

  • CHR research is performed at the Ludwig Maximilians Universitat (LMU) and the European Computer-Industry Research Centre (ECRC), both in Munich, by Fruhwirth and his students Abdennadher, Meuss, and Wolf

  • A refined operational semantics of the proposed execution strategy is presented as well. Along these lines is the approach proposed by Robin, Vitorino et al (2007), where disjunctions in CHR∨ are transformed into special purpose constraints that can be handled by an external search component such as JASE (Kramer 2001)

Read more

Summary

Introduction

Constraint Handling Rules (CHR) is a high-level programming language based on multi-headed, committed-choice, guarded multiset rewrite rules. Designed in 1991 by Fruhwirth (1992; 1995; 1998; 2009) for the special purpose of adding user-defined constraint solvers to a host-language, CHR has matured over the last decade to a powerful and elegant general-purpose language with a wide spectrum of application domains. The previous survey on CHR (Fruhwirth 1998) was written in 1998. The aim of this paper is to complement that survey by giving an overview of the last decade of CHR-related research. We start with a short historical overview of the past 10 years of CHR research, followed by an introduction to the language itself.

Historical Overview
Constraint Handling Rules
Syntax
Informal Semantics
Examples
Semantics
Classical Logic Semantics
Linear Logic Semantics
Transaction Logic Semantics
Operational Semantics
Theoretical Operational Semantics ωt
Refined Operational Semantics ωr
Priority Semantics ωp
Program Analysis
Confluence
Termination
Complexity
Ad Hoc Analysis
Meta-Complexity Results
Complexity-wise Completeness of CHR
Systems and Implementation
Systems
Compilation Schemes
Analysis and Optimizing Compilation
Code Specialization and Transformation
Programming Environments
Extensions and Variants
Probabilistic CHR
Adaptive CHR
Disjunction and Search
Negation and Aggregates
Solver Hierarchies
Join-Calculus
Logical Algorithms
Equivalent Transformation Rules
Petri Nets
LMNtal
Applications
Soft Constraints and Scheduling
Spatio-Temporal Reasoning
Multi-Agent Systems
Automatic Generation of Solvers
Type Systems
Abduction
Computational Linguistics
Meta-Programming
Testing and Verification
Conclusions
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.