Download:
|
by Elvira Albert, Michael Hanus
http://www.dsic.upv.es/~wflp2000/paper05.ps.gz
Add To MetaCart
Abstract:
Abstract. This paper introduces a novel approach for the specialization of functional logic languages. We consider a maximally simplified abstract representation of programs (which still contains all the necessary information) and define a non-standard semantics for these programs. Both things mixed together allow us to design a simple and concise partial evaluation method for modern functional logic languages, avoiding several limitations of previous approaches. representation, our technique is widely applicable. In order to assess the practicality of our approach, we have developed a partial evaluation tool for the multi-paradigm language Curry. The partial evaluator is written in Curry itself and has been tested on an extensive benchmark suite (even a meta-interpreter). To the best of our knowledge, this is the first purely declarative partial evaluator for a functional logic language. 1
Citations
|
722
|
Rewrite systems
– Dershowitz, Jouannaud
- 1990
|
|
552
|
Partial evaluation and automatic program generation
– Jones, Gomard, et al.
- 1993
|
|
366
|
Deforestation: Transforming programs to eliminate trees
– Wadler
- 1988
|
|
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
|
|
242
|
Tutorial notes on partial evaluation
– Consel, Danvy
- 1993
|
|
231
|
C.: Partial Evaluation in Logic Programming
– Lloyd, Shepherdson
- 1991
|
|
144
|
Tutorial on specialisation of logic programs
– Gallagher
- 1993
|
|
135
|
Definitional trees
– Antoy
- 1992
|
|
133
|
A unified computation model for functional and logic programming
– Hanus
- 1997
|
|
77
|
Narrowing-driven partial evaluation of functional logic programs
– Alpuente, Falaschi, et al.
- 1996
|
|
70
|
Higher-Order Narrowing with Definitional Trees
– Prehofer
- 1997
|
|
62
|
A positive supercompiler
– Sorenson, Gluck, et al.
- 1996
|
|
55
|
A general criterion for avoiding infinite unfolding during partial deduction
– Bruynooghe, Schreye, et al.
- 1992
|
|
53
|
An Algorithm of Generalization in Positive Supercompilation
– Sørensen, Glück
- 1995
|
|
47
|
On the Power of Homeomorphic Embedding for Online Termination
– Leuschel
- 1998
|
|
43
|
Distributed programming in a multi-paradigm declarative language
– Hanus
- 1702
|
|
35
|
A Roadmap to Metacomputation by Supercompilation
– Gluck, Srensen
- 1996
|
|
33
|
A Self-Applicable Partial Evaluator for Term Rewriting Systems
– Bondorf
- 1989
|
|
23
|
Indy User's Manual
– Albert, Alpuente, et al.
- 1998
|
|
17
|
Using an Abstract Representation to Specialize Functional Logic Programs
– Albert, Hanus, et al.
- 1955
|
|
13
|
A Constraint-based Partial Evaluator for Functional Logic Programs and its Application
– Lafave
- 1998
|
|
12
|
A Self-Applicable Supercompiler
– Nemytykh, Pinchuk, et al.
- 1991
|
|
6
|
A Partial Evaluation Framework for Curry Programs
– Albert, Alpuente, et al.
- 1705
|