Results 1 - 10
of
14
An Overview of ELAN
, 1998
"... This paper presents a comprehensive introduction to the ELAN rule-based programming language. We describe the main features of the language, the ELAN environment, and introduce bibliographic references to various papers addressing foundations, implementation and applications of ELAN. 1 Introduction ..."
Abstract
-
Cited by 94 (24 self)
- Add to MetaCart
This paper presents a comprehensive introduction to the ELAN rule-based programming language. We describe the main features of the language, the ELAN environment, and introduce bibliographic references to various papers addressing foundations, implementation and applications of ELAN. 1 Introduction The ELAN system [18] provides an environment for specifying and prototyping deduction systems in a language based on rules controlled by strategies. Its purpose is to support the design of theorem provers, logic programming languages, constraints solvers and decision procedures and to offer a modular framework for studying their combination. ELAN takes from functional programming the concept of abstract data types and the function evaluation principle based on rewriting. But rewriting is inherently non-deterministic since several rules can be applied at different positions in a same term, and in ELAN, a computation may have several results. This aspect is taken into account through choice...
ELAN from a rewriting logic point of view
- Theoretical Computer Science
, 2002
"... ELAN implements computational systems, a concept that combines two first class entities: rewrite rules and rewriting strategies. ELAN can be used either as a logical framework or to describe and execute deterministic as well as non-deterministic rule based processes. With the general goal to make pr ..."
Abstract
-
Cited by 50 (4 self)
- Add to MetaCart
ELAN implements computational systems, a concept that combines two first class entities: rewrite rules and rewriting strategies. ELAN can be used either as a logical framework or to describe and execute deterministic as well as non-deterministic rule based processes. With the general goal to make precise a rewriting logic based semantics of ELAN, this paper has three contributions: a presentation of the concepts of rules and strategies available in ELAN, an expression of rewrite rules with matching conditions in conditional rewriting logic, and finally an enrichment mechanism of a rewrite theory into a strategy theory in conditional rewriting logic.
Promoting Rewriting to a Programming Language: A Compiler for Non-Deterministic Rewrite Programs in Associative-Commutative Theories
, 2001
"... First-order languages based on rewrite rules share many features with functional languages. But one difference is that matching and rewriting can be made much more expressive and powerful by incorporating some built-in equational theories. To provide reasonable programming environments, compilation ..."
Abstract
-
Cited by 28 (6 self)
- Add to MetaCart
First-order languages based on rewrite rules share many features with functional languages. But one difference is that matching and rewriting can be made much more expressive and powerful by incorporating some built-in equational theories. To provide reasonable programming environments, compilation techniques for such languages based on rewriting have to be designed. This is the topic addressed in this paper. The proposed techniques are independent from the rewriting language and may be useful to build a compiler for any system using rewriting modulo associative and commutative (AC) theories. An algorithm for many-to-one AC matching is presented, that works efficiently for a restricted class of patterns. Other patterns are transformed to fit into this class. A refined data structure, namely compact bipartite graph, allows encoding all matching problems relative to a set of rewrite rules. A few optimisations concerning the construction of the substitution and of the reduced term are described. We also address the problem of non-determinism related to AC rewriting and show how to handle it through the concept of strategies. We explain how an analysis of the determinism can be performed at compile time and we illustrate the benefits of this analysis for the performance of the compiled evaluation process. Then we briefly introduce the ELAN system and its compiler, in order to give some experimental results and comparisons with other languages or rewrite engines.
A Proof Theoretic View of Constraint Programming
, 1998
"... We provide here a proof theoretic account of constraint programming that attempts to capture the essential ingredients of this programming style. We exemplify it by presenting proof rules for linear constraints over interval domains, and illustrate their use by analyzing the constraint propagation p ..."
Abstract
-
Cited by 24 (9 self)
- Add to MetaCart
We provide here a proof theoretic account of constraint programming that attempts to capture the essential ingredients of this programming style. We exemplify it by presenting proof rules for linear constraints over interval domains, and illustrate their use by analyzing the constraint propagation process for the SEND + MORE = MONEY puzzle. We also show how this approach allows one to build new constraint solvers. 1 Introduction 1.1 Motivation One of the most interesting recent developments in the area of programming has been constraint programming. A prominent instance of it is constraint logic programming exemplified by such programming languages as CLP(R), Prolog III or ECL i PS e . But recently also imperative constraint programming languages emerged, such as 2LP of McAloon & Tretkoff (1995) or CLAIRE of Caseau & Laburthe (1996). (For an overview of this area and related references see Hentenryck, Saraswat & et al. (1996)). The aim of this paper is to explain the essence of t...
Non-deterministic computations in ELAN
- Recent Developments in Algebraic Speci Techniques, Proc. 13th WADT'98, volume 1589 of LNCS
, 1998
"... . The ELAN system is an environment for specifying and prototyping constraint solvers, theorem provers and deduction systems in general. It also provides a framework for experimenting their combination. The ELAN language is based on rewriting logic and evaluation of labelled conditional rewrite rule ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
. The ELAN system is an environment for specifying and prototyping constraint solvers, theorem provers and deduction systems in general. It also provides a framework for experimenting their combination. The ELAN language is based on rewriting logic and evaluation of labelled conditional rewrite rules. ELAN has two originalities with respect to several other algebraic languages, namely to handle non-deterministic computations and to provide a user-dened strategy language for controlling rule application. We focus in this paper on these two related aspects and explain how non-determinism is used in ELAN programs and handled in the ELAN compiler. 1 Introduction The ELAN system [KKV95] provides an environment for specifying and prototyping deduction systems in a language based on rules controlled by strategies. Its purpose is to support the design of theorem provers, logic programming languages, constraints solvers and decision procedures and to oer a framework for studying their combin...
Cooperation of Constraint Solvers: Using the New Process Control Facilities of ELAN
- Proceedings of The Second International Workshop on Rewriting Logic and its Applications, RWLW'98
, 1998
"... In this paper, we introduce new process control facilities in the ELAN language as low-level primitives and high-level concurrent strategies. The low-level primitives are similar to those existing in UNIX for process control and communication. The high-level concurrent strategies proposed in this pa ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
In this paper, we introduce new process control facilities in the ELAN language as low-level primitives and high-level concurrent strategies. The low-level primitives are similar to those existing in UNIX for process control and communication. The high-level concurrent strategies proposed in this paper extend their existing sequential version giving them a new behaviour while preserving their operational semantics. This extension of the ELAN language allows to prototype in a very abstract and flexible way the integration of several computational systems within the same rewriting framework. Using the high-level concurrent strategies we can also avoid some non-terminating processes and/or apply the most efficient rewrite rule or strategy. We exemplify their use by prototyping different kinds of cooperation between constraint solvers, e.g. sequential and concurrent solvers. Keywords: Rewriting Logic, Computational Systems, Constraint Satisfaction Optimisation Problems, Process Communicat...
Strategic Rewriting
"... This is a position paper preparing the round table organized during the 4th International Workshop on Reduction Strategies in Rewriting and Programming. I sketch what I believe to be important challenges of strategic rewriting. 1 What and How Programming in declarative styles is highly desirable in ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This is a position paper preparing the round table organized during the 4th International Workshop on Reduction Strategies in Rewriting and Programming. I sketch what I believe to be important challenges of strategic rewriting. 1 What and How Programming in declarative styles is highly desirable in many domains and allows us to describe what we wants to do rather than how. Not only it allows for a better understanding of what is programmed, but it permits to make safer programs and systems by allowing to describe their properties and to search or check their proofs. This is typical of rule based programming (either in its algebraic form or “business” rules one), constraint programming, logic programming, functional programming, spreadsheet programming,... Both because the declarative capabilities extend and because we want to express clever controls on them, the description of these controls them self become declarative and therefore them self subject to meta control.
A Synthesis of Constraint Satisfaction and Constraint Solving
"... This paper offers a critique of the framework of Constraint Satisfaction Problems. While this framework has been successful in studying search techniques, andhas inspired some constraint programming languages, it hassomeweaknesses that leave it not directly applicable to the study of complex cons ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This paper offers a critique of the framework of Constraint Satisfaction Problems. While this framework has been successful in studying search techniques, andhas inspired some constraint programming languages, it hassomeweaknesses that leave it not directly applicable to the study of complex constraints (including so-called global constraints) in constraint programming languages.In particular, it deals poorly with semantic relations whose consistency can be determined algorithmically. In this paper the philosophy of the CLP Scheme is applied to extend the CSP framework to a form more suitable for addressing complex constraints, where both constraint satisfaction and constraint solving have a role.
Abstract Deductive Generation of Constraint Propagation Rules
"... Constraint propagation can often be conveniently expressed by rules. In recent years, a number of techniques for automatic generation of rule-based constraint solvers have been developed, most of them using a generate-and-test approach. We examine a generation method that is based on deduction. A so ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Constraint propagation can often be conveniently expressed by rules. In recent years, a number of techniques for automatic generation of rule-based constraint solvers have been developed, most of them using a generate-and-test approach. We examine a generation method that is based on deduction. A solver (i. e., a set of rules) for a complex constraint is obtained from one or several weaker solvers for simple constraints. We describe incremental solver constructions for several types of constraint modifications, including conjunction, existential and universal quantification. 1
A Control Language for Designing Constraint Solvers
- In Proc. of the 3rd Int. Conf. Perspective of System Informatics, PSI’99, volume 1755 of LNCS
, 2000
"... . We propose a strategy language for designing single constraint solvers as well as their collaborations. Based on the notions of constraint filter, separator, and sorter, we define basic strategy operators that allow us to specify single solvers and their collaboration in a uniform way. We exem ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
. We propose a strategy language for designing single constraint solvers as well as their collaborations. Based on the notions of constraint filter, separator, and sorter, we define basic strategy operators that allow us to specify single solvers and their collaboration in a uniform way. We exemplify the use of this language by specifying some techniques for solving non-linear constraints over real numbers and CSPs over finite domains. 1 Introduction In the last twenty years, a lot of work has been done on solving Constraint Satisfaction Problems (CSPs) [8]. The existing constraint solvers have been successfully applied for solving real-life problems. We could say that constraint solving over a particular domain is well-understood. In the case of solvers based on propagation, either the control is left at the implementation level, or the strategy is fixed. For example, to be completely formal when adding strategies to Chaotic Iteration, we must prove that the algorithm and the ...

