## Evaluation Strategies for Functional Logic Programming (2001)

### Cached

### Download Links

- [www.cs.pdx.edu]
- [www.cs.pdx.edu]
- [web.cecs.pdx.edu]
- [www.cs.pdx.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | Journal of Symbolic Computation |

Citations: | 28 - 20 self |

### BibTeX

@ARTICLE{Antoy01evaluationstrategies,

author = {Sergio Antoy},

title = {Evaluation Strategies for Functional Logic Programming},

journal = {Journal of Symbolic Computation},

year = {2001},

volume = {40},

pages = {875--903}

}

### Years of Citing Articles

### OpenURL

### Abstract

. Recent advances in the foundations and the development of functional logic programming languages originate from far-reaching results on narrowing evaluation strategies. Narrowing is a computation similar to rewriting which yields substitutions in addition to normal forms. In functional logic programming, the classes of rewrite systems to which narrowing is applied are, for the most part, subclasses of the constructor-based, possibly conditional, rewrite systems. Many interesting narrowing strategies, particularly for the smallest subclasses of the constructor-based rewrite systems, are generalizations of wellknown rewrite strategies. However, some strategies for larger non-confluents subclasses have been developed just for functional logic computations. In this paper, I will discuss the elements that play a relevant role in evaluation strategies for functional logic programming, describe some important classes of rewrite systems that model functional logic programs, show examples of the differences in expressiveness provided by these classes, and review the characteristics of narrowing strategies proposed for each class of rewrite systems. 1

### Citations

1309 | Monads for Functional Programming - Wadler - 1995 |

940 |
Term Rewriting and All That
- Baader, Nipkow
- 1998
(Show Context)
Citation Context ...gy. Section 4 briefly discusses some extensions to the previous classes and related issues. Section 5 contains the conclusion. 2 Narrowing This section briefly recalls basic notions of term rewriting =-=[8, 11, -=-17] and functional logic programming [13]. A rewrite system is a pair, R = h; Ri, where is a signature and R is a set of rewrite rules. Signature is many-sorted and is partitioned into a set C of co... |

751 | Rewrite systems
- Dershowitz, Jouannaud
- 1992
(Show Context)
Citation Context ...gy. Section 4 briefly discusses some extensions to the previous classes and related issues. Section 5 contains the conclusion. 2 Narrowing This section briefly recalls basic notions of term rewriting =-=[8, 11, -=-17] and functional logic programming [13]. A rewrite system is a pair, R = h; Ri, where is a signature and R is a set of rewrite rules. Signature is many-sorted and is partitioned into a set C of co... |

565 | Term Rewriting Systems
- Klop
- 1992
(Show Context)
Citation Context ...gy. Section 4 briefly discusses some extensions to the previous classes and related issues. Section 5 contains the conclusion. 2 Narrowing This section briefly recalls basic notions of term rewriting =-=[8, 11, -=-17] and functional logic programming [13]. A rewrite system is a pair, R = h; Ri, where is a signature and R is a set of rewrite rules. Signature is many-sorted and is partitioned into a set C of co... |

333 | Functional Logic Programming: From Theory to Curry
- Hanus
(Show Context)
Citation Context ...ns to the previous classes and related issues. Section 5 contains the conclusion. 2 Narrowing This section briefly recalls basic notions of term rewriting [8, 11, 17] and functional logic programming =-=[-=-13]. A rewrite system is a pair, R = h; Ri, where is a signature and R is a set of rewrite rules. Signature is many-sorted and is partitioned into a set C of constructor symbols and a set F of defin... |

290 | On completeness of narrowing strategies
- Echahed
- 1988
(Show Context)
Citation Context ...the substitution of a narrowing step is a most general unifier of a narrex and a rule's left-hand side. This condition is not imposed here since narrowing with most general unifiers can be suboptimal [6]. A computation or evaluation of a term s is a narrowing derivation s = t 0s 1 : : :sn t n = t, where t is a value. Substitution 1s s n is called a computed answer and t is called a computed ... |

151 | Definitional trees
- Antoy
- 1992
(Show Context)
Citation Context ...ontribute to this simplicity and are unavailable in either the functional or the logic program are: (1) non-determinism, e.g., operation permute computes one of the many permutations of its argument, =-=(2)-=- semantic unification, e.g., the vari2 ables in the constraint (U++V=permute X s ) are instantiated, if possible, to satisfy the equation, and (3) functional inversion, i.e., the possibility to comput... |

151 | The Craft of Prolog - O’Keefe - 1990 |

95 | A Demand Driven Computation Strategy for Lazy Narrowing
- Loogen, López-Fraguas, et al.
- 1993
(Show Context)
Citation Context ...lasses of TRSs. permute [] -> [] permute [X|X s ] -> insert X (permute X s ) insert X Y s -> [X|Y s ] insert X [Y|Y s ] -> [Y|insert X Y s ] An early narrowing strategy for this class is presented in =-=[18]-=-. That strategy is a generalization to narrowing of a rewrite strategy proposed in [1]. The completeness of both these strategies is unknown. A potential difficulty of a class as large as the construc... |

88 |
Conditional rewrite rules: Confluence and termination
- Bergstra, Klop
- 1982
(Show Context)
Citation Context ...ms of the form t = u. The definition of the rewrite relation for conditional TRSs is fairly more complicated than for unconditional TRSs. The classic approach to conditional rewriting is discussed in =-=[9]-=-. A left-linear, conditional, constructor-based TRS is a good model for a functional or a logic program. Computations are (expressed by) operation-rooted terms ultimately applied to values. Example 2.... |

87 |
Higher-order extensions to Prolog: are they needed
- Warren
- 1982
(Show Context)
Citation Context ...ions in these classes. Computations in SFL programs are mapped to first-order computations by a transformation that extends to narrowing a well-know transformation for higher-order logic computations =-=[24]-=-. Computations in applicative TRSs are executed by a calculus that makes inference steps of a granularity finer than narrowing steps. Computations in higher-order inductively sequential TRSs are execu... |

86 |
Computing in Systems Described by Equations
- O’DONNELL
- 1977
(Show Context)
Citation Context ...ed. Figure 1 presents a containment diagram of some major classes. All the classes considered in the diagram are constructor-based. Rewrite rules defining an operation with the constructor-discipline =-=[20]-=- implicitly define a corresponding function over algebraic data types such as those of 6 WO OIS CB IS Fig. 1. Containment diagram of rewrite systems modeling functional logic programs. The outer area,... |

76 | Higher-Order Narrowing with Definitional Trees
- Hanus, Prehofer
- 1999
(Show Context)
Citation Context ...se, several classes of higherorder TRSs have been proposed for higher-order functional logic computations, e.g., SFL programs [12], applicative TRSs [19], and higher-order inductively sequential TRSs =-=[15]-=-. Different approaches have been adopted to prove properties of functional logic computations in these classes. Computations in SFL programs are mapped to first-order computations by a transformation ... |

64 |
Computations in orthogonal term rewriting systems
- Huet, Lévy
- 1991
(Show Context)
Citation Context ... TRSs. These are the strongly sequential component of the constructor-based TRSs [14]. Optimal rewrite derivations for the strongly sequential TRSs are executed by the well-know call-by-need strategy =-=[16]-=-. Optimality, in this class, is the property that every step of a call-by-need derivation is needed in the sense that the value computed by the derivation, if it exists, cannot be reached unless the s... |

61 | Optimal non-deterministic functional logic computations
- Antoy
(Show Context)
Citation Context ... similar to a Prolog predicate, "succeeds" iff its condition succeeds. Void is a primitive construct that succeeds iff its argument is a constraint with no solution. A query of the form, e.g=-=., queens [1,2,3,4]-=- non-deterministically computes a solution of the 4-queens problem. To understand the promise of functional logic programming languages, it is instructive to compare the above program with textbook ex... |

46 | Parallel Evaluation Strategies for Functional Logic Languages
- Antoy, Echahed, et al.
- 1997
(Show Context)
Citation Context ... defined by the rules: or true - -> true R 6 or - true -> true R 7 or false false -> false R 8 Term or (or true u) (or v true) has no needed redex regardless of terms u and v. Weakly needed narrowing =-=[5]-=- is a conservative extension of the strategy defined in [22]. This strategy is formulated by means of definitional trees as well. The rewrite rules defining an operation in a weakly orthogonal TRSs ca... |

42 | Programming in equational logic: Beyond strong sequentiality
- Sekar, Ramakrishnan
- 1993
(Show Context)
Citation Context ...uential normalizing rewrite strategies, as well. Optimal rewrite derivations for the weakly orthogonal constructor-based TRSs are executed by repeatedly contracting all the redexes of a necessary set =-=[22]-=-. This notion generalizes 9 that of needex redex, which is undefined in this class. Optimality, in this class, is the property that the value computed by a derivation, if it exists, cannot be reached ... |

27 | Strongly Sequential and Inductively Sequential Term Rewriting Systems
- Hanus, Lucas, et al.
- 1998
(Show Context)
Citation Context ...xt section. 3.1 Inductively Sequential TRSs The smallest class in the diagram of Figure 1 is the inductively sequential TRSs. These are the strongly sequential component of the constructor-based TRSs =-=[14]-=-. Optimal rewrite derivations for the strongly sequential TRSs are executed by the well-know call-by-need strategy [16]. Optimality, in this class, is the property that every step of a call-by-need de... |

20 | Higher-order rewriting
- Raamsdonk
- 1999
(Show Context)
Citation Context ..., which is normalizing for almost-orthogonal TRSs [20], is normalizing also for weaklyorthogonal higher-order TRSs if an additional condition, full extension, is imposed on higher-order rewrite rules =-=[23]-=-. The theory of higher-order narrowing is even less developed. Similar to the first-order case, several classes of higherorder TRSs have been proposed for higher-order functional logic computations, e... |

17 | A complete narrowing calculus for higher-order functional logic programming. Pages 97–114 of
- Nakahara, Middeldorp, et al.
- 1995
(Show Context)
Citation Context ... even less developed. Similar to the first-order case, several classes of higherorder TRSs have been proposed for higher-order functional logic computations, e.g., SFL programs [12], applicative TRSs =-=[19]-=-, and higher-order inductively sequential TRSs [15]. Different approaches have been adopted to prove properties of functional logic computations in these classes. Computations in SFL programs are mapp... |

14 |
Non-Determinism and Lazy Evaluation in Logic Programming
- Antoy
- 1991
(Show Context)
Citation Context ... similar to a Prolog predicate, "succeeds" iff its condition succeeds. Void is a primitive construct that succeeds iff its argument is a constraint with no solution. A query of the form, e.g=-=., queens [1,2,3,4]-=- non-deterministically computes a solution of the 4-queens problem. To understand the promise of functional logic programming languages, it is instructive to compare the above program with textbook ex... |

11 | Typed Higher-Order Narrowing without Higher-Order Strategies
- Antoy, Tolmach
- 1722
(Show Context)
Citation Context ...duced for this purpose. Every symbol in a transformed term is fully applied. The original idea [24] is formulated for functional evaluation in logic programming, [12] generalizes it to narrowing, and =-=[7]-=- refines it by preserving type information which may dramatically reduce the size of the narrowing space. These approaches are interesting because they extend non-trivial results proved for first-orde... |

10 | A correctness proof for Warren's HO into FO translation
- Gonzalez-Moreno
- 1993
(Show Context)
Citation Context ...gher-order narrowing is even less developed. Similar to the first-order case, several classes of higherorder TRSs have been proposed for higher-order functional logic computations, e.g., SFL programs =-=[12]-=-, applicative TRSs [19], and higher-order inductively sequential TRSs [15]. Different approaches have been adopted to prove properties of functional logic computations in these classes. Computations i... |

1 |
Constructor-based conditional narrowing, 2001. Submitted for publication. Available at URL http://www.cs.pdx.edu/ antoy
- Antoy
(Show Context)
Citation Context ...roposed in [1]. The completeness of both these strategies is unknown. A potential difficulty of a class as large as the constructor-based TRSs is that outermost rewrite strategies are not normalizing =-=[4]-=-, hence outermost narrowing strategies are not complete. All the strategies discussed in the previous sections are outermost, a condition that simplifies reasoning about computations and consequently ... |