Results 1 - 10
of
10
Definitional Trees
- In Proc. of the 3rd International Conference on Algebraic and Logic Programming
, 1992
"... . Rewriting is a computational paradigm that specifies the actions, but not the control. We introduce a hierarchical structure representing, at a high level of abstraction, a form of control. Its application solves a specific problem arising in the design and implementation of inherently sequential, ..."
Abstract
-
Cited by 138 (31 self)
- Add to MetaCart
. Rewriting is a computational paradigm that specifies the actions, but not the control. We introduce a hierarchical structure representing, at a high level of abstraction, a form of control. Its application solves a specific problem arising in the design and implementation of inherently sequential, lazy, functional programming languages based on rewriting. For example, we show how to extend the expressive power of Log(F ) and how to improve the efficiency of an implementation of BABEL. Our framework provides a notion of degree of parallelism of an operation and shows that the elements of a necessary set of redexes are related by an and-or relation. Both concepts find application in parallel implementations of rewriting. In an environment in which computations can be executed in parallel we are able to detect sequential computations in order to minimize overheads and/or optimize execution. Conversely, we are able to detect when inherently sequential computations can be executed in para...
Programming in Equational Logic: Beyond Strong Sequentiality
, 1993
"... Orthogonal term rewriting systems (also known as regular systems) provide an elegant framework for programming in equational logic. O'Donnell showed that the parallel-outermost strategy, which replaces all outermost redexes in each step, is complete for such systems. Many of the reductions performed ..."
Abstract
-
Cited by 41 (0 self)
- Add to MetaCart
Orthogonal term rewriting systems (also known as regular systems) provide an elegant framework for programming in equational logic. O'Donnell showed that the parallel-outermost strategy, which replaces all outermost redexes in each step, is complete for such systems. Many of the reductions performed by this strategy could be wasteful in general. A lazy normalization algorithm that completely eliminated these wasteful reductions by reducing only "needed redexes" was later developed by Huet and Levy. However, this algorithm required the input programs to be restricted to the subclass of strongly sequential systems. This is because needed redexes do not exist for all orthogonal programs, and even when they do, they may not be computable. It is therefore quite natural to ask whether it is possible to devise a complete normalization algorithm for the entire class that minimizes (rather than eliminate) the wasteful reductions. In this paper we propose a solution to this problem using the concept of a necessary set of redexes. In such a set, at least one of the redexes must be reduced to normalize a term. We devise an algorithm to compute a necessary set for any term not in normal form and show that a strategy that repeatedly reduces all redexes in such a set is complete for orthogonal programs. We also show that our algorithm is "optimal" among all normalization algorithms that are based on left-hand sides alone. This means that our algorithm is lazy (like Huet-Levy's) on strongly sequential parts of a program and "relaxes laziness minimally" to handle the other parts and thus does not sacrifice generality for the sake of efficiency.
Optimal Normalization in Orthogonal Term Rewriting Systems
- In: Proc. of the 5 th International Conference on Rewriting Techniques and Applications, RTA'93
, 1993
"... . We design a normalizing strategy for orthogonal term rewriting systems (OTRSs), which is a generalization of the call-by-need strategy of Huet-L'evy [4]. The redexes contracted in our strategy are essential in the sense that they have "descendants" under any reduction of a given term. There is an ..."
Abstract
-
Cited by 23 (20 self)
- Add to MetaCart
. We design a normalizing strategy for orthogonal term rewriting systems (OTRSs), which is a generalization of the call-by-need strategy of Huet-L'evy [4]. The redexes contracted in our strategy are essential in the sense that they have "descendants" under any reduction of a given term. There is an essential redex in any term not in normal form. We further show that contraction of the innermost essential redexes gives an optimal reduction to normal form, if it exists. We classify OTRSs depending on possible kinds of redex creation as non-creating, persistent, inside-creating, non-left-absorbing, etc. All these classes are decidable. TRSs in these classes are sequential, but they do not need to be strongly sequential. For non-creating and persistent OTRSs, we show that our optimal strategy is efficient as well. 1 Introduction In this paper, we study correct and optimal computations in Orthogonal Term Rewriting Systems (OTRSs). We only consider one-step rewriting strategies, which selec...
Open Problems in Rewriting
- Proceeding of the Fifth International Conference on Rewriting Techniques and Application (Montreal, Canada), LNCS 690
, 1991
"... Introduction Interest in the theory and applications of rewriting has been growing rapidly, as evidenced in part by four conference proceedings #including this one# #15, 26, 41,66#; three workshop proceedings #33, 47, 77#; #ve special journal issues #5,88, 24, 40, 67#; more than ten surveys #2,7,27 ..."
Abstract
-
Cited by 19 (2 self)
- Add to MetaCart
Introduction Interest in the theory and applications of rewriting has been growing rapidly, as evidenced in part by four conference proceedings #including this one# #15, 26, 41,66#; three workshop proceedings #33, 47, 77#; #ve special journal issues #5,88, 24, 40, 67#; more than ten surveys #2,7,27, 28, 44, 56,57,76, 82, 81#; one edited collection of papers #1#; four monographs #3, 12,55,65#; and seven books #four of them still in progress# #8,9, 35, 54, 60,75, 84#. To encourage and stimulate continued progress in this area, wehave collected #with the help of colleagues# a number of problems that appear to us to be of interest and regarding whichwe do not know the answer. Questions on rewriting and other equational paradigms have been included; manyhave not aged su#ciently to be accorded the appellation #open problem". Wehave limited ourselves to theoretical questions, though there are certainly many additional interesting questions relating to applications and implementation
Compact Normalisation Trace via Lazy Rewriting
, 2001
"... Innermost strategies are usually used in compiling term rewriting systems (TRSs) since they allow to eciently build result terms in a bottom-up fashion. However, innermost strategies do not always give the shortest normalising derivation. In many cases, using an appropriate laziness annotation on th ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Innermost strategies are usually used in compiling term rewriting systems (TRSs) since they allow to eciently build result terms in a bottom-up fashion. However, innermost strategies do not always give the shortest normalising derivation. In many cases, using an appropriate laziness annotation on the arguments of function symbols, we evaluate lazy arguments only if it is necessary and hence, get a shorter derivation to normal forms while avoiding non-terminating reductions. We provide in this work a transformation of annotated TRSs, that allows to compute normal forms using an innermost strategy and to extract lazy derivations in the original TRS from normalising derivations in the transformed TRS. We apply our result to improve the eciency of equational reasoning in the Coq proof assistant using ELAN as an external rewriting engine.
Lazy Rewriting in Logic Programming
, 1992
"... We describe a technique enabling a logic program to perform lazy rewriting. Our technique is based on a transformation of a rewrite system in a set of Horn clauses. We characterize syntactically, in terms of a hierarchical structure of the rewrite rules of an operation, the systems accepted by ou ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
We describe a technique enabling a logic program to perform lazy rewriting. Our technique is based on a transformation of a rewrite system in a set of Horn clauses. We characterize syntactically, in terms of a hierarchical structure of the rewrite rules of an operation, the systems accepted by our transformation and outline a design technique yielding systems with these characteristics. We define our transformation, prove its correctness and other properties, and relate the efficiency of resolution to that of rewriting. Improvements over previous similar results include using a more expressive and more powerful language, generating a more efficient logic program, providing efficient operational completeness, and establishing a tight bound on the length of a resolution as a function of the length of a corresponding reduction sequence. We compare our approach with several related proposals and discuss examples which also show the integration of lazy with eager evaluation and ...
Transformations of Reduction Systems
"... We consider transformations of reduction systems in an abstract setting. We study some sets of correctness criteria for such transformations, adapt a notion of simulation proposed by Kamperman and Walters, and show that the resulting !-simulation behaves well w.r.t. the criteria. We apply our resul ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We consider transformations of reduction systems in an abstract setting. We study some sets of correctness criteria for such transformations, adapt a notion of simulation proposed by Kamperman and Walters, and show that the resulting !-simulation behaves well w.r.t. the criteria. We apply our results in an investigation of a transformation proposed by Thatte, and prove that this transformation preserves semicompleteness for weakly persistent systems. 1 Introduction With the emergence of the use of Reduction Systems as semantical basis of programming paradigms, the use of transformation methods for Reduction Systems is growing. Some systems are more suitable for execution on a machine than others, for instance because they have a normalizing reduction strategy that is easily decidable, or because they are in a specific format. Transformation methods are then used to translate an arbitrary system into such a suitable system. Evidently, such a transformation should not be applied if it ...
Transformation of Reduction Systems - a view on proving correctness
, 1996
"... Reduction Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.3 Term Rewriting Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.3.1 Terms : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.3.2 Rules : : : : : : : : : : : : : : : : : : : ..."
Abstract
- Add to MetaCart
Reduction Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.3 Term Rewriting Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.3.1 Terms : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.3.2 Rules : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 2.3.3 Subclasses : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 3 Correctness Criteria 9 3.1 Mappings : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 3.2 Preservation of Properties : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 3.3 Preservation of Reduction Graphs : : : : : : : : : : : : : : : : : : : : : : : : 12 4 Simulation 13 4.1 A Preorder : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 4.2 Preservation of Normal Forms : : : : : : : : : : : : : : : : : : : : : : : : : : : 14 4.3 Preservation of Confluence : : : : : : : : : : : : : : : : : : : : : : : :...
Recovering Sequentiality in Functional-Logic Programs
"... . Efficient code generation in implementations of functional logic languages relies on the sequentiality of the program rules --- existence of an optimal evaluation order for arguments. Parallel evaluation of arguments in the presence of free variables is out of the question due to the possibility o ..."
Abstract
- Add to MetaCart
. Efficient code generation in implementations of functional logic languages relies on the sequentiality of the program rules --- existence of an optimal evaluation order for arguments. Parallel evaluation of arguments in the presence of free variables is out of the question due to the possibility of backtracking and sharing of these variables among different arguments. In this paper we show that the lack of sequentiality is often syntactic rather than semantic and that a clever use of type information and strictness analysis can enable a compiler to generate sequential code from most programs. Keywords: Sequentiality, Abstract Interpretation, Functional Logic Programming. 1 Introduction The relationship between sequential term rewriting systems [8] and the implementation of lazy functional programming languages is well known --- see, for instance [16, 15] for an introduction to the subject. The typical example is parallel or, defined by the equations or true x = true or x true = true...
Strategies and Analysis Techniques for Functional Program Optimization
, 2003
"... Computer systems play an important role in the modern information society. However, the low quality of software and its low level of abstraction, inhibit the necessary confidence of final users and system developers in software engineering. Correctness of computer programs by a mathematical theory o ..."
Abstract
- Add to MetaCart
Computer systems play an important role in the modern information society. However, the low quality of software and its low level of abstraction, inhibit the necessary confidence of final users and system developers in software engineering. Correctness of computer programs by a mathematical theory of computation is the fundamental concern of the theory of programming and of its application in large-scale software engineering. Formal methods provide software engineering with the suitable scientific and technological framework to become a real engineering, as predictable as civil or electrical engineering are. Indeed, the use of declarative rule-based programming languages during all program development stages ensures that correct and certified formal methodologies are followed during the whole software production process.

