Results 1  10
of
11
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 9 (6 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 9 (6 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 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
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
Ondemand strategy annotations revisited: An improved ondemand evaluation strategy
 THEORETICAL COMPUTER SCIENCE
, 2010
"... ..."
Abstract Natural Narrowing as a General Unified Mechanism for Programming and Proving
"... Although originally introduced as a theorem proving method to solve equational unification problems, narrowing was soon recognized as a key mechanism to unify functional and logic programming. In fact, in a declarative setting where programming and proving can be seamlessly integrated, narrowing ser ..."
Abstract
 Add to MetaCart
Although originally introduced as a theorem proving method to solve equational unification problems, narrowing was soon recognized as a key mechanism to unify functional and logic programming. In fact, in a declarative setting where programming and proving can be seamlessly integrated, narrowing serves as a unified mechanism for both evaluation and deduction. For narrowing to be an efficient evaluation mechanism, several lazy narrowing strategies have been proposed, although typically for the restricted case of leftlinear constructorbased rewrite 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. In this paper, we propose an efficient lazy narrowing strategy called natural narrowing which can be applied to a larger class of rewrite systems without the above assumptions. This strategy is more efficient than all previously know strategies when applied to the class of leftlinear constructorbased rewrite systems. 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, 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
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.
Natural Narrowing as a General Unified Mechanism for Programming and Proving
"... 1 Introduction In a declarative language, programming and provingcan often be seamlessly integrated. The point is that a declarative program P is typically a theory in somelogic, and computing with ..."
Abstract
 Add to MetaCart
1 Introduction In a declarative language, programming and provingcan often be seamlessly integrated. The point is that a declarative program P is typically a theory in somelogic, and computing with