Conference Paper

A Comparison of Constraint Handling Rules with Equivalent Transformation Rules.

Conference: Proceedings of the International Conference on Modeling, Simulation & Visualization Methods, MSV '04 & Proceedings of the International Conference on Algorithmic Mathematics & Computer Science, AMCS '04, June 21-24, 2004, Las Vegas, Nevada, USA
Source: DBLP

ABSTRACT We have proposed a novel computation framework called Equivalent Transformation (ET). The ET frame- work is a rewriting system in which computation is exe- cuted by rewriting rules. Rewriting rules of the ET frame- work are called Equivalent Transformation Rules (ETRs). The theory of ET guarantees the correctness of the com- putation by ETRs. Multi-head ETRs which have multiple atoms in their head part are valid ETRs. Constraint Handling Rules (CHR) are declarative lan- guage extension designed for writing user-defined con- straints. CHR allows to use multi-head guarded rules for its computation. This paper compares the rewriting rules of ET and CHR, especially multi-head rules. We show that all CHR rules can be simply transformed into correct ETRs preserving their logical meanings. Examples of the correct ETRs which can not be represented as CHR rules are also given. Therefore CHR rules can be regarded as proper subclass of ETRs.

  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: The foundations of functional programming languages are examined from both historical and technical perspectives. Their evolution is traced through several critical periods: early work on lambda calculus and combinatory calculus, Lisp, Iswim, FP, ML, and modern functional languages such as Miranda1 and Haskell. The fundamental premises on which the functional programming methodology stands are critically analyzed with respect to philosophical, theoretical, and pragmatic concerns. Particular attention is paid to the main features that characterize modern functional languages: higher-order functions, lazy evaluation, equations and pattern matching, strong static typing and type inference, and data abstraction. In addition, current research areas—such as parallelism, nondeterminism, input/output, and state-oriented computations—are examined with the goal of predicting the future development and application of functional languages.
    ACM Computing Surveys 01/1989; 21:359-411. · 4.04 Impact Factor
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. Early research concentrated on the definition and improvement of execution principles for such integrated languages, while more recently efficient implementations of these execution principles have been developed so that these languages became relevant for practical applications. In this paper we survey the development of the operational semantics as well as the improvement of the implementation of functional logic languages.
    The Journal of Logic Programming 05/1994;
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Constraint Handling Rules (CHR) are our proposal to allow more flexibility and application-oriented customization of constraint systems. CHR are a declarative language extension especially designed for writing user-defined constraints. CHR are essentially a committed-choice language consisting of multi-headed guarded rules that rewrite constraints into simpler ones until they are solved. In this broad survey we aim at covering all aspects of CHR as they currently present themselves. Going from theory to practice, we will define syntax and semantics for CHR, introduce an important decidable property, confluence, of CHR programs and define a tight integration of CHR with constraint logic programming languages. This survey then describes implementations of the language before we review several constraint solvers – both traditional and nonstandard ones – written in the CHR language. Finally we introduce two innovative applications that benefited from using CHR.
    The Journal of Logic Programming 10/1998;


Available from