Results 1  10
of
13
ContextSensitive Computations in Functional and Functional Logic Programs
 JOURNAL OF FUNCTIONAL AND LOGIC PROGRAMMING
, 1998
"... ..."
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 43 (30 self)
 Add to MetaCart
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 ...
Explicit Cyclic Substitutions
, 1993
"... In this paper we consider rewrite systems that describe the lambdacalculus enriched with recursive and nonrecursive local definitions by generalizing the `explicit substitutions' used by Abadi, Cardelli, Curien, and Lévy [1] to describe sharing in lambdaterms. This leads to `explicit cyclic subst ..."
Abstract

Cited by 25 (2 self)
 Add to MetaCart
In this paper we consider rewrite systems that describe the lambdacalculus enriched with recursive and nonrecursive local definitions by generalizing the `explicit substitutions' used by Abadi, Cardelli, Curien, and Lévy [1] to describe sharing in lambdaterms. This leads to `explicit cyclic substitutions' that can describe the mutual sharing of local recursive definitions. We demonstrate how this may be used to describe standard binding constructions (let and letrec)  directly using substitution and fixed point induction as well as using `smallstep' rewriting semantics where substitution is interleaved with the mechanics of the following betareductions. With this we hope to contribute to the synthesis of denotational and operational specifications of sharing and recursion.
A Conflict Between CallbyNeed Computation and Parallelism
, 1994
"... . In functional language implementation, there is a folklore belief that there is a conflict between implementing callbyneed semantics and parallel evaluation. In this note we illustrate this by proving that reduction algorithms of a certain general and commonly used form which give callbyneed ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
. In functional language implementation, there is a folklore belief that there is a conflict between implementing callbyneed semantics and parallel evaluation. In this note we illustrate this by proving that reduction algorithms of a certain general and commonly used form which give callbyneed semantics offer very little parallelism. The analysis of lazy patternmatching which leads to the above result also suggests an efficient sequential algorithm for the evaluation of a class functional programs satisfying certain constraints, an algorithm which respects the mathematical semantics of the program considered as a term rewrite system. 1 Introduction Huet and L'evy [Huet and L'evy, 1979, Huet and L'evy, 1991] have considered the problem of call by need computation of normal forms in orthogonal term rewrite systems. Call by need here means that no redex is ever reduced unless it must be reduced in order to compute the normal form. In general, such a redex cannot be effectiv...
Clean: a Programming Environment Based on Term Graph Rewriting
 Proc. of Joint COMPUGRAPH/SEMAGRAPH Workshop on Graph Rewriting and Computation (SEGRAGRA’95
, 1995
"... The main features of the lazy functional language Concurrent Clean and of its semantics based on Term Graph Rewriting are presented. 1 History The pure, lazy functional language Concurrent Clean (version 1.0) is a major upgrade of the previous release (0.84b) of Clean ([3,10,11]). Clean was origina ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
The main features of the lazy functional language Concurrent Clean and of its semantics based on Term Graph Rewriting are presented. 1 History The pure, lazy functional language Concurrent Clean (version 1.0) is a major upgrade of the previous release (0.84b) of Clean ([3,10,11]). Clean was originally designed as an experimental intermediate language and deliberately kept syntactically as poor as possible to be able to focus on the essential language and implementation issues. This strategy enabled us to study new concepts (such as term graph rewriting [1], lazy copying [4], abstract reduction [8], uniqueness typing [2]) without too much implementation effort. The ideas were tested in the Clean compiler which could be used on small machines and produced stateoftheart code [13]. The consequence was that people started to use Clean to construct large applications even though Clean was actually not intended as a programming language. So, it became necessary to turn the experimental in...
Semantics and Strong Sequentiality of Priority Term Rewriting Systems
 LNCS
, 1996
"... Abstract. This paper gives an operational semantics of priority term rewriting systems (PRS) by using conditional systems, whose reduction is decidable and stable under substitution. We also de ne the class of strong sequential PRSs and show that this class is decidable. Moreover, we show that the i ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. This paper gives an operational semantics of priority term rewriting systems (PRS) by using conditional systems, whose reduction is decidable and stable under substitution. We also de ne the class of strong sequential PRSs and show that this class is decidable. Moreover, we show that the index rewriting of strong sequential PRSs gives a normalizing strategy. 1
Incremental Needed Narrowing
 In Proc. of the Int’l Workshop on Implementation of Declarative Languages (IDL’99
, 1999
"... Needed narrowing is currently the best complete strategy for executing inductively sequential functional logic programs. Its optimality properties and the fact that inductively sequential programs are a subclass of strongly sequential programs support the claim that needed narrowing must be consider ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Needed narrowing is currently the best complete strategy for executing inductively sequential functional logic programs. Its optimality properties and the fact that inductively sequential programs are a subclass of strongly sequential programs support the claim that needed narrowing must be considered the functional logic couterpart of Huet and Lévy's strongly needed reduction. In this paper, we show how a preeminent property of reduction in (a distinguished subclass of) strongly sequential programs, namely the incrementality of the evaluation, can be inherited by needed narrowing. We give an incremental definition of needed narrowing and show that the original optimality properties are kept. Moreover, we experimentally demonstrate that the incremental refinement can lead to substantial improvements in the overall evaluation process.
Efficient Strong Sequentiality Using Replacement Restrictions
, 1997
"... . Huet and L'evy defined the (orthogonal) strongly sequential term rewriting systems, for which index reduction, i.e., reduction of redexes placed at special positions called (strong) indices, is optimal and normalizing. Despite the fact that Huet and L'evy give an algorithm to compute indices for ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
. Huet and L'evy defined the (orthogonal) strongly sequential term rewriting systems, for which index reduction, i.e., reduction of redexes placed at special positions called (strong) indices, is optimal and normalizing. Despite the fact that Huet and L'evy give an algorithm to compute indices for the general case, there are many proposals to define subclasses of strongly sequential rewrite systems for which this can be done more efficiently. In this paper, we show that sometimes it is possible to enlarge such classes by only introducing fixed replacement restrictions, without forcing any sensible modification of the corresponding index reduction strategy. Keywords: functional programming, neededness, replacement restrictions, term rewriting. 1 Introduction For orthogonal term rewriting systems (TRSs), Huet and L'evy gave a formal basis for the definition of efficient sequential strategies, i.e., reduction sequences in which only one needed redex is reduced in each step [2, 4]. The ...
A Framework for the Analysis of Syntactic Replacement Restrictions
, 1999
"... We formalize the notion of syntactic replacement restriction, which is useful for modeling reductionbased systems which compute with terms and impose restrictions on the possible computations (typically by means of strategies). We emphasize the syntactic flavour of our approach: the restrictions a ..."
Abstract
 Add to MetaCart
We formalize the notion of syntactic replacement restriction, which is useful for modeling reductionbased systems which compute with terms and impose restrictions on the possible computations (typically by means of strategies). We emphasize the syntactic flavour of our approach: the restrictions are associated to components of terms and (in principle) they do not depend on either a particular Term Rewriting System or a computational mechanism (like rewriting, narrowing, residuation, etc.). The replacement restrictions can be used to improve the computational behavior of the unrestricted mechanism. We give a general descriptive and algebraic framework to deal with replacement restrictions. For the descriptive part, we introduce and motivate properties which characterize classes of replacement restrictions. For the algebraic side, the set of replacement restrictions is presented as a complete Boolean algebra. The algebraic operations (and others which we also define) can be used to com...
The equivalence of the reductions with the Estrategy with and without marks
"... The Estrategy is the evaluation strategy which is adopted by OBJ2, OBJ3, and CafeOBJ. OBJ2, OBJ3, and CafeOBJ also adopt the reduction with the Estrategy with marks. In this paper, we show the result of the reduction with marks coincides with the result of the reduction without marks if the Estra ..."
Abstract
 Add to MetaCart
The Estrategy is the evaluation strategy which is adopted by OBJ2, OBJ3, and CafeOBJ. OBJ2, OBJ3, and CafeOBJ also adopt the reduction with the Estrategy with marks. In this paper, we show the result of the reduction with marks coincides with the result of the reduction without marks if the Estrategies satisfy the conditions that the Estrategy list do not include 0, or the last element of the Estrategy list is 0. In the most of the practical usage, the above conditions are satisfied. 1 Introduction The Estrategy [2, 3, 5] is the evaluation strategy which is adopted by OBJ2, OBJ3, and CafeOBJ, in the following referred to as the OBJs. The OBJs are algebraic specification languages which have an underlying formal semantics that is based on equational logic, and an operational semantics that is based on rewrite rules. The equations of the specification may be used to rewrite rules from left hands to right hands. Therefore, static properties of the specification are verified by th...