Results 1  10
of
15
An Implementation of Narrowing Strategies
 Journal of the ACM
, 2001
"... This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic progra ..."
Abstract

Cited by 296 (118 self)
 Add to MetaCart
This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic programs into imperative (Java) programs without an intermediate abstract machine. A central idea of our approach is the explicit representation and processing of narrowing computations as data objects. This enables the implementation of operationally complete strategies (i.e., without backtracking) or techniques for search control (e.g., encapsulated search). Thanks to the use of an intermediate and portable representation of programs, our implementation is general enough to be used as a common back end for a wide variety of functional logic languages.
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 158 (40 self)
 Add to MetaCart
(Show Context)
. 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 andor 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 paralleloutermost strategy, which replaces all outermost redexes in each step, is complete for such systems. Many of the reductions perf ..."
Abstract

Cited by 40 (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 paralleloutermost 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 lefthand sides alone. This means that our algorithm is lazy (like HuetLevy'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 callbyneed strategy of HuetL'evy [4]. The redexes contracted in our strategy are essential in the sense that they have "descendants" under any reduction of a given ter ..."
Abstract

Cited by 24 (20 self)
 Add to MetaCart
(Show Context)
. We design a normalizing strategy for orthogonal term rewriting systems (OTRSs), which is a generalization of the callbyneed strategy of HuetL'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 noncreating, persistent, insidecreating, nonleftabsorbing, etc. All these classes are decidable. TRSs in these classes are sequential, but they do not need to be strongly sequential. For noncreating 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 onestep 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 bottomup 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 6 (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 bottomup 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 nonterminating 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.
Transformations of Reduction Systems
, 1996
"... 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.
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 1 (1 self)
 Add to MetaCart
(Show Context)
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 ...
Strong and NVsequentiality of constructor systems
, 2004
"... of Term Rewriting Systems (TRSs) which can be used as an abstract model of some programming languages. While normalizing strategies are always desirable for achieving a good computational behavior of programs, when dealing with lazy languages in nitary normalizing strategies should be considered in ..."
Abstract
 Add to MetaCart
of Term Rewriting Systems (TRSs) which can be used as an abstract model of some programming languages. While normalizing strategies are always desirable for achieving a good computational behavior of programs, when dealing with lazy languages in nitary normalizing strategies should be considered instead since ( nite approximations of) in nite data structures can be returned as the result of computations. We have shown that NVsequential TRSs (hence strongly sequential TRSs, a subclass of them) provide an appropriate basis for the eective de nition of normalizing and in nitary normalizing strategies. In this paper, we show that strongly sequential and NVsequential CSs coincide. Since the implementation of NVsequential TRSs has been underexplored in comparison to strongly sequential TRSs, this coincidence suggests that, in programming languages, it is a good option to implement NVsequentiality as strong sequentiality.