A needed narrowing strategy

@article{Antoy2000ANN,
  title={A needed narrowing strategy},
  author={Sergio Antoy and Rachid Echahed and Michael Hanus},
  journal={Journal of the ACM},
  year={2000},
  volume={47},
  pages={776-822}
}
The narrowing relation over terms constitutes the basis of the most important operational semantics of languages that integrate functional and logic programming paradigms. It also plays an important role in the definition of some algorithms of unification modulo equational theories that are defined by confluent term rewriting systems. Due to the inefficiency of simple narrowing, many refined narrowing strategies have been proposed in the last decade. This paper presents a new narrowing strategy… 

Figures from this paper

Termination of Narrowing: Automated Proofs and Modularity Properties
TLDR
This method generalizes the current state-of-the-art, enabling the study of termination of logic programs in terms of the termination of narrowing, something which was not possible previously.
Evaluation strategies for functional logic programming
  • S. Antoy
  • Computer Science
    J. Symb. Comput.
  • 2005
Fast narrowing-driven partial evaluation for inductively sequential programs
TLDR
This work introduces a faster partial evaluation scheme by ensuring the termination of the process offline and introduces an annotation algorithm for a broader class of programs so that they behave like quasi-terminating programs w.r.t. an extension of needed narrowing.
Constructor-based conditional narrowing
TLDR
The efficiency and practicality of using the transformation defined in this paper for the implementation of functional logic programming languages and the differences between demand driven and lazy strategies and between narrowing strategies and narrowing calculi are analyzed.
An Evaluation Semantics for Narrowing-Based Functional Logic Languages
We introduce a semantic characterization of narrowing, the computational engine of many functional logic languages. We use a functional domain for giving a denotation to the narrowing space
Complete Strategies for Term Graph Narrowing
TLDR
This paper addresses basic narrowing and shows its completeness for innermost normalizing and confluent graph rewriting, and considers the combination of basic narrowing with two strategies for controlling sharing, obtaining minimally collapsing and maximally collapsing basic narrowing.
A rewrite-based computational model for functional logic programming
TLDR
This work considers a recent proposal by Antoy and Hanus, of translating CB-CTRSs into an equivalent class of programs where computation can be performed by mere rewriting, and proposes two adjustments of their computational models, which are capable to compute non-ground answers.
An Abstract Machine Based System for a Lazy Narrowing Calculus
TLDR
This paper proposes the integration of a lazy narrowing calculus for goal solving in the context of CRWL, a rewriting logic for functional logic programming that deals with non-deterministic functions and the JUMP-machine, an abstract machine model for the efficient implementation of functional logic languages.
Adding Data to Curry
TLDR
A new type class "Data" is introduced which is associated with specific algebraic data types, logic variables, and strict equality and its implications on various concepts of Curry, like unification, functional patterns, and program optimization are discussed.
Specializing Narrowing for Timetable Generation: A Case Study
TLDR
An algorithm is proposed, obtained as an integration of three known optimization algorithms for the linear assignment problem (LAP), enumerating solutions to the LAP in order of increasing weight, such that resolution of goals is complete again.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 65 REFERENCES
A needed narrowing strategy
TLDR
A notion of a needed narrowing step that is sound and complete for a large class of rewrite systems, is optimal w.r.t. the cost measure that counts the number of distinct steps of a derivation, computes only independent unifiers, and is efficiently implemented by pattern matching.
Parallel Evaluation Strategies for Functional Logic Languages
TLDR
A parallel narrowing strategy is defined that is the first complete narrowing strategy which evaluates ground expressions in a fully deterministic, optimal way and computes shortest derivations and minimal sets of solutions on inductively sequential rewrite systems.
Higher-Order Narrowing with Definitional Trees
TLDR
This paper extends the needed narrowing strategy to higher-order functions and λ-terms as data structures and is the first calculus for higher- order functional logic programming which provides for such an optimality result.
Needed Narrowing in Prolog (Extended Abstract)
TLDR
The implementation of needed narrowing deployed in a compiler of a functional-logic language and a new, more declarative and accessible formulation of a definitional tree is given, and a simple algorithm to build definitional trees is presented.
Narrowing Strategies for Arbitrary Canonical Rewrite Systems
TLDR
This paper presents the narrowing strategies for arbitrary canonical systems in a uniform framework and introduces the new narrowing strategy LSE narrowing, which is complete and improves all other strategies which are complete for arbitrary-canonical systems.
Rewrite Systems
  • N. Dershowitz, J. Jouannaud
  • Computer Science
    Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics
  • 1990
Basic Narrowing Revisited
Optimal derivations in weak lambda-calculi and in orthogonal term rewriting systems
TLDR
The new framework of Labeled Terms Rewriting Systems (T~RS), a general framework to express sharing in Term Rewriters Systems (TRS), is introduced and optimal derivations are characterized, showing the optimality of the tazy strategy.
On Completeness of Narrowing Strategies
  • R. Echahed
  • Computer Science
    Theor. Comput. Sci.
  • 1990
...
1
2
3
4
5
...