Results 1  10
of
38
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 160 (43 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...
Natural termination
 Theoretical Computer Science
"... Abstract. We generalize the various path orderings and the conditions under which they work, and describe an implementation of this general ordering. We look at methods for proving termination of orthogonal systems and give a new solution to a problem of Zantema's. 1 ..."
Abstract

Cited by 84 (11 self)
 Add to MetaCart
Abstract. We generalize the various path orderings and the conditions under which they work, and describe an implementation of this general ordering. We look at methods for proving termination of orthogonal systems and give a new solution to a problem of Zantema's. 1
ContextSensitive Rewriting Strategies
, 1997
"... Contextsensitive rewriting is a simple restriction of rewriting which is formalized by imposing fixed restrictions on replacements. Such a restriction is given on a purely syntactic basis: it is (explicitly or automatically) specified on the arguments of symbols of the signature and inductively ..."
Abstract

Cited by 44 (31 self)
 Add to MetaCart
(Show Context)
Contextsensitive rewriting is a simple restriction of rewriting which is formalized by imposing fixed restrictions on replacements. Such a restriction is given on a purely syntactic basis: it is (explicitly or automatically) specified on the arguments of symbols of the signature and inductively extended to arbitrary positions of terms built from those symbols. Termination is not only preserved but usually improved and several methods have been developed to formally prove it. In this paper, we investigate the definition, properties, and use of contextsensitive rewriting strategies, i.e., particular, fixed sequences of contextsensitive rewriting steps. We study how to define them in order to obtain efficient computations and to ensure that contextsensitive computations terminate whenever possible. We give conditions enabling the use of these strategies for rootnormalization, normalization, and infinitary normalization. We show that this theory is suitable for formalizing ...
Optimal Derivations in Weak Lambdacalculi and in Orthogonal Terms Rewriting Systems.
, 1991
"... We introduce the new framework of Labeled Terms Rewriting Systems (T l RS), a general framework to express sharing in Term Rewriting Systems (TRS). For Orthogonal T l RS, an important subclass of T l RS, we characterize optimal derivations. This result is applied to weak calculi, showing the ..."
Abstract

Cited by 31 (0 self)
 Add to MetaCart
We introduce the new framework of Labeled Terms Rewriting Systems (T l RS), a general framework to express sharing in Term Rewriting Systems (TRS). For Orthogonal T l RS, an important subclass of T l RS, we characterize optimal derivations. This result is applied to weak calculi, showing the optimality of the lazy strategy, that is, the callbyname with sharing strategy. The result is also valid in the presence of ffi rules, as in PCF. Orthogonal T l RS is also useful as a calculus for proving syntactic properties of functional languages. 1 Compilation of the calculus Most compilers for functional languages translate their source language into some enriched calculus [17], and then, compile this intermediate language to a lowlevel language, such as mutually recursive supercombinators, as in LML [2, 10], or categorical combinators, as in CAML [4]. These lowlevel languages define different forms of weak fireduction. We now describe two of these lowlevel languages, superc...
Lambda calculus with patterns
, 1990
"... The calculus is an extension of the calculus with a pattern matching facility. The form of the argument of a function can be specified and hencecalculus is more convenient than ordinary calculus. We explore the basic theory of calculus, establishing results such as confluence. In doing so, we f ..."
Abstract

Cited by 31 (1 self)
 Add to MetaCart
(Show Context)
The calculus is an extension of the calculus with a pattern matching facility. The form of the argument of a function can be specified and hencecalculus is more convenient than ordinary calculus. We explore the basic theory of calculus, establishing results such as confluence. In doing so, we find some requirements for patterns that guarantee confluence. Our work can be seen as giving some foundations for implementations of functional programming languages.
Compiling Pattern Matching by Term Decomposition
, 1989
"... We present a method for compiling pattern matching on lazy languages based on previous work by Laville and HuetLevy. It consists of coding ambiguous linear sets of patterns using "Term Decomposition," and producing non ambiguous sets over terms with structural constraints on variables. Th ..."
Abstract

Cited by 23 (0 self)
 Add to MetaCart
We present a method for compiling pattern matching on lazy languages based on previous work by Laville and HuetLevy. It consists of coding ambiguous linear sets of patterns using "Term Decomposition," and producing non ambiguous sets over terms with structural constraints on variables. The method can also be applied to strict languages giving a match algorithm that includes only unavoidable tests when such an algorithm exists.
Adding algebraic rewriting to the untyped lambda calculus
 Information and Computation
, 1992
"... We investigate the system obtained by adding an algebraic rewriting system R to an untyped lambda calculus in which terms are formed using the function symbols from R as constants. On certain classes of terms, called here "stable", we prove that the resulting calculus is confluent if R is ..."
Abstract

Cited by 22 (0 self)
 Add to MetaCart
(Show Context)
We investigate the system obtained by adding an algebraic rewriting system R to an untyped lambda calculus in which terms are formed using the function symbols from R as constants. On certain classes of terms, called here "stable", we prove that the resulting calculus is confluent if R is confluent, and terminating if R is terminating. The termination result has the corresponding theorems for several typed calculi as corollaries. The proof of the confluence result suggests a general method for proving confluence of typed β reduction plus rewriting; we sketch the application to the polymorphic lambda calculus.
The Functional Strategy and Transitive Term Rewriting Systems
, 1993
"... The functional strategy has been widely used implicitly (Haskell, Miranda, Lazy ML) and explicitly (Clean) as an efficient, intuitively easy to understand reduction strategy for term (or graph) rewriting systems. However, little is known of its formal properties since the strategy deals with priorit ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
The functional strategy has been widely used implicitly (Haskell, Miranda, Lazy ML) and explicitly (Clean) as an efficient, intuitively easy to understand reduction strategy for term (or graph) rewriting systems. However, little is known of its formal properties since the strategy deals with priority rewriting which significantly complicates the semantics. Nevertheless, this paper shows that some formal results about the functional strategy can be produced by studying the functional strategy entirely within the standard framework of orthogonal term rewriting systems. A concept is introduced that is one of the key aspects of the efficiency of the functional strategy: transitive indexes . The corresponding class of transitive term rewriting systems is characterized. An efficient normalizing strategy is given for these rewriting systems. It is shown that the functional strategy is normalizing for the class of leftincompatible term rewriting systems. 1. Introduction An interesting commo...
ML pattern match compilation and partial evaluation
, 1996
"... : We derive a compiler for MLstyle pattern matches. It is conceptually simple and produces reasonably good compiled matches. The derivation is inspired by the instrumentation and partial evaluation of naive string matchers. Following that paradigm, we first present a general and naive ML pattern ma ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
: We derive a compiler for MLstyle pattern matches. It is conceptually simple and produces reasonably good compiled matches. The derivation is inspired by the instrumentation and partial evaluation of naive string matchers. Following that paradigm, we first present a general and naive ML pattern matcher, instrument it to collect and exploit extra information, and show that partial evaluation of the instrumented general matcher with respect to a given match produces an efficient specialized matcher. We then discard the partial evaluator and show that a match compiler can be obtained just by slightly modifying the instrumented general matcher. The resulting match compiler is interesting in its own right, and naturally detects inexhaustive matches and redundant match rules. 1 Introduction Consel and Danvy [3] studied a general string matcher, taking two inputs: a pattern string to look for, and an object string to look in. The matcher finds the first occurrence (if any) of the pattern ...