Results 1 
6 of
6
Improving OnDemand Strategy Annotations
, 2002
"... In functional languages such as OBJ*, CafeOBJ, and Maude, symbols are given strategy annotations which specify (the order in) which subterms are evaluated. Syntactically, they are given either as lists of natural numbers or as lists of integers associated to function symbols whose (absolute) val ..."
Abstract

Cited by 16 (15 self)
 Add to MetaCart
In functional languages such as OBJ*, CafeOBJ, and Maude, symbols are given strategy annotations which specify (the order in) which subterms are evaluated. Syntactically, they are given either as lists of natural numbers or as lists of integers associated to function symbols whose (absolute) values refer to the arguments of the corresponding symbol.
Natural narrowing for general term rewriting systems
 Proc. of 16th International Conference on Rewriting Techniques and Applications, RTA’05, Lecture Notes in Computer Science
, 2005
"... Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a much broader range of applications to which narrowing can be fruitfully applied, including applications where rules have a nonequational meaning either as transitions in a concurrent system or as inferences in a logical system. In this paper, we propose an efficient lazy narrowing strategy called natural narrowing which can be applied to general term rewriting systems with no restrictions whatsoever. An important consequence of this generalization is the wide range of applications that can now be efficiently supported by narrowing. We highlight a few such applications including symbolic model checking, theorem proving, programming languages, and partial evaluation. What thus emerges is a general and efficient unified mechanism based on narrowing, that seamlessly integrates a very wide range of applications in programming and proving. 1
Implementing Natural Rewriting and Narrowing Efficiently
"... Outermostneeded rewriting/narrowing is a sound and complete optimal demanddriven strategy for the class of inductively sequential constructor systems. Its parallel extension, known as weakly, deals with noninductively sequential constructor systems. Recently, refinements of (weakly) outermostnee ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
Outermostneeded rewriting/narrowing is a sound and complete optimal demanddriven strategy for the class of inductively sequential constructor systems. Its parallel extension, known as weakly, deals with noninductively sequential constructor systems. Recently, refinements of (weakly) outermostneeded rewriting and narrowing have been obtained. These new strategies are called natural rewriting and natural narrowing, respectively, and incorporate a better treatment of demandedness. In this paper, we address the problem of how to implement natural rewriting and narrowing eciently by using a refinement of the notion of definitional tree, which we call matching definitional tree. We also show how to compile...
Natural narrowing as a general unified mechanism for programming and proving
, 2004
"... Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructor systems. These assumptions, while reasonable for functional programming applications, are too restrictive for a much broader range of applications to which narrowing can be fruitfully applied, including applications where rules have a nonequational meaning either as transitions in a concurrent system or as inferences in a logical system. In this paper, we propose an efficient lazy narrowing strategy called natural narrowing which can be applied to general term rewriting systems with no restrictions whatsoever. An important consequence of this generalization is the wide range of applications that can now be efficiently supported by narrowing. We highlight a few such applications including symbolic model checking, theorem proving, programming languages, and partial evaluation. What thus emerges is a general and efficient unified mechanism based on narrowing, that seamlessly integrates a very wide range of applications in programming and proving. 1
Natural rewriting for general term rewriting systems
 In Proc. of LOPSTR’04
, 2004
"... Abstract. We address the problem of an efficient rewriting strategy for general term rewriting systems. Several strategies have been proposed over the last two decades for rewriting, the most efficient of all being the natural rewriting strategy [9]. All the strategies so far, including natural rewr ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract. We address the problem of an efficient rewriting strategy for general term rewriting systems. Several strategies have been proposed over the last two decades for rewriting, the most efficient of all being the natural rewriting strategy [9]. All the strategies so far, including natural rewriting, assume that the given term rewriting system is a leftlinear constructor system. Although these restrictions are reasonable for some functional programming languages, they limit the expressive power of equational languages, and they preclude certain applications of rewriting to equational theorem proving and to languages combining equational and logic programming. In this paper, we propose a conservative generalization of natural rewriting that does not require the rules to be leftlinear and constructorbased. We also establish the soundness and completeness of this generalization. 1
Ondemand Evaluation by Program Transformation
, 2004
"... Strategy annotations are used in eager programming languages (e.g., OBJ2, OBJ3, CafeOBJ, and Maude) for improving efficiency and/or reducing the risk of nontermination. Syntactically, they are given either as lists of natural numbers or as lists of integers associated to function symbols whose (abs ..."
Abstract
 Add to MetaCart
Strategy annotations are used in eager programming languages (e.g., OBJ2, OBJ3, CafeOBJ, and Maude) for improving efficiency and/or reducing the risk of nontermination. Syntactically, they are given either as lists of natural numbers or as lists of integers associated to function symbols whose (absolute) values refer to the arguments of the corresponding symbol. A positive index forces the evaluation of an argument whereas a negative index means "evaluation ondemand". Recently, we have developed a formal description of the operational meaning of such ondemand strategy annotations which improves previous formalizations that were lacking satisfactory computational properties. In this paper, we introduce an automatic, semanticspreserving program transformation which produces a program (without negative annotations) which can be then correctly executed by typical OBJ interpreters. Moreover, to demonstrate the practicality of our ideas, the program transformation has been implemented and we compare the behavior of transformed programs with the original ones on a set of representative benchmarks.