Results 1  10
of
18
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 ...
Matching Power
 Proceedings of RTA’2001, Lecture Notes in Computer Science, Utrecht (The Netherlands
, 2001
"... www.loria.fr/{~cirstea,~ckirchne,~lliquori} Abstract. In this paper we give a simple and uniform presentation of the rewriting calculus, also called Rho Calculus. In addition to its simplicity, this formulation explicitly allows us to encode complex structures such as lists, sets, and objects. We pr ..."
Abstract

Cited by 31 (20 self)
 Add to MetaCart
www.loria.fr/{~cirstea,~ckirchne,~lliquori} Abstract. In this paper we give a simple and uniform presentation of the rewriting calculus, also called Rho Calculus. In addition to its simplicity, this formulation explicitly allows us to encode complex structures such as lists, sets, and objects. We provide extensive examples of the calculus, and we focus on its ability to represent some object oriented calculi, namely the Lambda Calculus of Objects of Fisher, Honsell, and Mitchell, and the Object Calculus of Abadi and Cardelli. Furthermore, the calculus allows us to get object oriented constructions unreachable in other calculi. In summa, we intend to show that because of its matching ability, the Rho Calculus represents a lingua franca to naturally encode many paradigms of computations. This enlightens the capabilities of the rewriting calculus based language ELAN to be used as a logical as well as powerful semantical framework. 1
Termination of ondemand rewriting and termination of OBJ programs
 In Proc. of 3rd International Conference on Principles and Practice of Declarative Programming, PPDP'01
, 2001
"... Declarative languages such as OBJ*, CafeOBJ, and Maude use syntactic annotations to introduce replacement restrictions aimed at improving termination or efficiency of computations. Unfortunately, there is a lack of formal techniques for proving such benefits. We show that contextsensitive rewriting ..."
Abstract

Cited by 30 (20 self)
 Add to MetaCart
Declarative languages such as OBJ*, CafeOBJ, and Maude use syntactic annotations to introduce replacement restrictions aimed at improving termination or efficiency of computations. Unfortunately, there is a lack of formal techniques for proving such benefits. We show that contextsensitive rewriting and ondemand rewriting provide a suitable framework to address this problem. We provide methods to analyze termination of ondemand rewriting and apply them to analyze termination of OBJ*, CafeOBJ, and Maude programs. Keywords Program analysis, replacement restrictions, term rewriting, termination 1.
Promoting Rewriting to a Programming Language: A Compiler for NonDeterministic Rewrite Programs in AssociativeCommutative Theories
, 2001
"... Firstorder 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 builtin equational theories. To provide reasonable programming environments, compilation ..."
Abstract

Cited by 30 (6 self)
 Add to MetaCart
Firstorder 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 builtin 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 manytoone 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 nondeterminism 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.
Termination of Rewriting with Strategy Annotations
 Proc. of 8th International Conference on Logic for Programming, Artificial Intelligence and Reasoning, LPAR'01, LNAI 2250:669684
, 2001
"... We investigate termination of rewriting computations guided by strategy annotations. We show that proofs of termination can be obtained by proving (innermost) termination of contextsensitive rewriting (CSR). Hence, we investigate how to prove innermost termination of CSR using existing methods ..."
Abstract

Cited by 21 (16 self)
 Add to MetaCart
We investigate termination of rewriting computations guided by strategy annotations. We show that proofs of termination can be obtained by proving (innermost) termination of contextsensitive rewriting (CSR). Hence, we investigate how to prove innermost termination of CSR using existing methods for proving termination of CSR.
Correct and complete (positive) strategy annotations for OBJ
 Electronic Notes in Theoretical Computer Science
, 2002
"... Strategy annotations are used in several programming languages as replacement restrictions aimed at improving efficiency and/or reducing the risk of nontermination. ..."
Abstract

Cited by 16 (10 self)
 Add to MetaCart
Strategy annotations are used in several programming languages as replacement restrictions aimed at improving efficiency and/or reducing the risk of nontermination.
Lazy Rewriting and ContextSensitive Rewriting
 Electronic Notes in Theoretical Computer Science, volume 64. Elsevier Sciences
, 2002
"... Lazy rewriting (LR) is intended to improve the termination behavior of TRSs. This is attempted by restricting reductions for selected arguments of functions. Similarly, contextsensitive rewriting (CSR) forbids any reduction on those arguments. We show that, under certain conditions, LR and CSR coin ..."
Abstract

Cited by 13 (9 self)
 Add to MetaCart
Lazy rewriting (LR) is intended to improve the termination behavior of TRSs. This is attempted by restricting reductions for selected arguments of functions. Similarly, contextsensitive rewriting (CSR) forbids any reduction on those arguments. We show that, under certain conditions, LR and CSR coincide. On the basis of this result, we also describe a transformation which permits proving termination of LR as termination of CSR for the transformed system. Since there is a number of different techniques for proving termination of CSR, this provides a (first) formal framework for proving termination of lazy rewriting.
Modular termination of contextsensitive rewriting
 IN PROC. 4TH PPDP
, 2002
"... Contextsensitive rewriting (CSR) has recently emerged as an interesting and flexible paradigm that provides a bridge between the abstract world of general rewriting and the (more) applied setting of declarative specification and programming languages such as OBJ*, CafeOBJ, ELAN, and Maude. A natura ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
Contextsensitive rewriting (CSR) has recently emerged as an interesting and flexible paradigm that provides a bridge between the abstract world of general rewriting and the (more) applied setting of declarative specification and programming languages such as OBJ*, CafeOBJ, ELAN, and Maude. A natural approach to study properties of programs written in these languages is to model them as contextsensitive rewriting systems. Here we are especially interested in proving termination of such systems, and thereby providing methods to establish termination of e.g. OBJ* programs. For proving termination of contextsensitive rewriting, there exist a few transformation methods, that reduce the problem to termination of a transformed ordinary term rewriting system (TRS). These transformations, however, have some serious drawbacks. In particular, most of them do not seem to support a modular analysis of the termination problem. In this paper we will show that a substantial part of the wellknown theory of modular term rewriting can be extended to CSR, via a thorough analysis of the additional complications arising from contextsensitivity. More precisely, we will mainly concentrate on termination (properties). The obtained modularity results correspond nicely to the fact that in the above languages the modular design of programs and specifications is explicitly promoted, since it can now also be complemented by modular analysis techniques.
The simply typed rewriting calculus
 WRLA 2004
, 2004
"... The rewriting calculus is a rule construction and application framework. As such it embeds in a uniform way term rewriting and lambdacalculus. Since rule application is an explicit object of the calculus, it allows us also to handle the set of results explicitly. We present a simply typed version o ..."
Abstract

Cited by 9 (5 self)
 Add to MetaCart
The rewriting calculus is a rule construction and application framework. As such it embeds in a uniform way term rewriting and lambdacalculus. Since rule application is an explicit object of the calculus, it allows us also to handle the set of results explicitly. We present a simply typed version of the rewriting calculus. With a good choice of the type system, we show that the calculus is type preserving and terminating, i.e. verifies the subject reduction and strong normalization properties.
How to Give Local Strategies to Function Symbols for Equality of Two Implementations of the Estrategy with and without Evaluated Flags
 Proceedings of Asian Symposium on Computer Mathematics
, 1998
"... . The evaluation strategy (abbr. the Estrategy) initiated by OBJ2 is one of compromises between outermost and innermost reduction strategies. Although rewriting with the Estrategy is intuitively easytounderstand, the straightforward implementation cannot lead to efficient rewriting. Then, the im ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
. The evaluation strategy (abbr. the Estrategy) initiated by OBJ2 is one of compromises between outermost and innermost reduction strategies. Although rewriting with the Estrategy is intuitively easytounderstand, the straightforward implementation cannot lead to efficient rewriting. Then, the implementations of OBJ3 and CafeOBJ use evaluated flags to implement reasonably rewriting with the Estrategy. However, rewriting with evaluated flags is not always equivalent to that without evaluated flags, which depends on local strategies given to function symbols. So far we did not have any useful guidelines on how to give local strategies to function symbols. In this paper, we present a sufficient but reasonable condition (i.e. how to give local strategies to function symbols) that two implementations of the Estrategy with and without evaluated flags are equivalent, and give its proof. 1. Introduction A reduction strategy is a function that takes a set of rewrite rules (i.e. a term rew...