Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Handbook of theoretical computer science (vol. B)
Partial evaluation in logic programming
Journal of Logic Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial on specialisation of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partial evaluation of functional logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed Programming in a Multi-Paradigm Declarative Language
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
A Self-Applicable Partial Evaluator for Term Rewriting Systems
TAPSOFT '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advanced Seminar on Foundations of Innovative Software Development II and Colloquium on Current Issues in Programming Languages
A Roadmap to Metacomputation by Supercompilation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Proceedings of the Third International Conference on Algebraic and Logic Programming
A Self-Applicable Supercompiler
Selected Papers from the Internaltional Seminar on Partial Evaluation
Higher-order narrowing with definitional trees
Journal of Functional Programming
Cost-augmented narrowing-driven specialization
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
A residualizing semantics for the partial evaluation of functional logic programs
Information Processing Letters
A Practical Partial Evaluator for a Multi-Paradigm Declarative Language
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
Measuring the Effectiveness of Partial Evaluation in Functional Logic Languages
LOPSTR '00 Selected Papers form the 10th International Workshop on Logic Based Program Synthesis and Transformation
Symbolic Profiling for Multi-paradigm Declarative Languages
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
An Abstract Machine Based System for a Lazy Narrowing Calculus
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
Cost-Augmented Partial Evaluation of Functional Logic Programs
Higher-Order and Symbolic Computation
Partial evaluation of multi‐paradigm declarative languages: Thesis
AI Communications
JuliusC: a practical approach for the analysis of divide-and-conquer algorithms
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
Hi-index | 0.05 |
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. Moreover, since these languages can be automatically translated into the abstract 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.