Download:
|
by Aachener Informatik-bericht, Michael Hanus, Michael Hanus, Christian Prehofer, Christian Prehofer
Journal of Functional Programming
http://sunsite.informatik.rwth-aachen.de/Publications/AIB/1996/96-02.ps.gz
Add To MetaCart
Abstract:
Functional logic languages with a sound and complete operational semantics are mainly based on an inference rule called narrowing. Narrowing extends functional evaluation by goal solving capabilities as in logic programming. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing strategy for first-order functional logic programs due to its optimality properties w.r.t. the length of derivations and the number of computed solutions. In this paper, we extend the needed narrowing strategy to higher-order functions and-terms as data structures. By the use of definitional trees, our strategy computes only incomparable solutions. Thus, it is the first calculus for higher-order functional logic programming which provides for such an optimality result. Since we allow higher-order logical variables denoting-terms, applications go beyond current functional and logic programming languages.
Citations
|
894
|
The lambda calculus, its syntax and semantics
– Barendregt
- 1984
|
|
496
|
S.: The Implementation of Functional Programming Languages
– Jones
- 1987
|
|
333
|
The integration of functions into logic programming: from theory to practice
– Hanus
- 1994
|
|
288
|
M.: A needed narrowing strategy
– Antoy, Echahed, et al.
- 2000
|
|
284
|
An efficient unification algorithm
– Martelli, Montanari
- 1982
|
|
263
|
A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification
– Miller
- 1991
|
|
231
|
Combinatory reduction systems
– Klop
- 1980
|
|
215
|
Report on the Programming Language Haskell, A Non-strict, Purely Functional Language
– Hudak, Jones, et al.
- 1992
|
|
191
|
Introduction to combinators and *-calculus
– Hindley, Seldin
- 1988
|
|
176
|
Logic Programming with Functions and Predicates: The Language BABEL
– Moreno-Navarro, Rodríguez-Artalejo
- 1992
|
|
151
|
Canonical forms and unification
– Hullot
- 1980
|
|
148
|
Higher-order logic programming
– Nadathur, Miller
- 1998
|
|
135
|
Definitional trees
– Antoy
- 1992
|
|
115
|
Higher-order critical pairs
– Nipkow
- 1991
|
|
112
|
Kernel Leaf: A Logic plus Functional Language
– Giovannetti, Levi, et al.
- 1991
|
|
87
|
Computations in orthogonal rewriting systems
– Huet, Lévy
- 1991
|
|
75
|
V.: Confluence for Abstract and Higher-Order Rewriting
– Oostrom
- 1994
|
|
64
|
Automated theorem-proving for theories with simplifiers, commutativity and associativity
– Slagle
- 1974
|
|
53
|
Foundations of Equational Logic Programming
– Holldobler
- 1989
|
|
45
|
Higher-order unification revisited: Complete sets of transformations
– Snyder, Gallier
- 1989
|
|
44
|
Lazy narrowing: Strong completeness and eager variable elimination
– Okui, Middeldorp, et al.
- 1995
|
|
43
|
Interaction systems I: The theory of optimal reductions
– Asperti, Laneve
- 1994
|
|
43
|
Call by Need Computations to Root-Stable Form
– Middeldorp
- 1997
|
|
36
|
Efficient Translation of Lazy Functional Logic Programs into Prolog
– Hanus
- 1995
|
|
36
|
Solving Higher-Order Equations: From Logic to Programming
– Prehofer
- 1995
|
|
33
|
Combining functional and logic programming languages
– Lloyd
- 1994
|
|
21
|
On the completeness of narrowing as the operational semantics of functional logic programming
– Gonz'alez-Moreno, Hortal'a-Gonz'alez, et al.
- 1992
|
|
21
|
Higher-order narrowing
– Prehofer
- 1994
|
|
16
|
A Theoretical Framework for Reasoning about Program Construction Based on Extensions of Rewrite Systems
– Lor'ia-S'aenz
- 1993
|
|
15
|
Higher-order families
– Oostrom
- 1996
|
|
14
|
A Call-by-Need Strategy for Higher-Order Functional-Logic Programming
– Prehofer
- 1995
|
|
12
|
Leftmost outside-in narrowing calculi
– Ida, Nakahara
- 1997
|
|
9
|
Higher-order conditional rewriting and narrowing
– Avenhaus, Lor'ia-S'aenz
- 1994
|
|
8
|
Lazy Unification Algorithms for Canonical Rewrite Systems
– Martelli, Rossi, et al.
- 1989
|
|
6
|
Higher-order narrowing with convergent systems
– Prehofer
- 1995
|
|
2
|
Some applications of functional logic programming
– Prehofer
- 1996
|