The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Automatic mode inference for logic programs
Journal of Logic Programming
Formal derivation of a pattern matching algorithm
Science of Computer Programming
A method for specializing logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Logic programming: systematic program development
Logic programming: systematic program development
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Handbook of theoretical computer science (vol. B)
Partial evaluation of pattern matching in constraint logic programming languages
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Partial evaluation in logic programming
Journal of Logic Programming
Essence of generalized partial computation
Theoretical Computer Science - Images of programming dedicated to the memory of Andrei P. Ershov
Equivalence-preserving first-order unfold/fold transformation systems
Theoretical Computer Science - Selected papers of the Second International Conference on algebraic and logic programming, Nancy, France, October 1–3, 1990
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
Online partial deduction of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Mixtus: an automatic partial evaluator for full Prolog
New Generation Computing
Sound and complete partial deduction with unfolding based on well-founded measures
FGCS'921 Selected papers of the conference on Fifth generation computer systems
Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
From logic programming to Prolog
From logic programming to Prolog
Reducing nondeterminism while specializing logic programs
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Some achievements and prospects in partial deduction
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program analysis, debugging, and optimization using the ciao system preprocessor
Proceedings of the 1999 international conference on Logic programming
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficiency by Incrementalization: An Introduction
Higher-Order and Symbolic Computation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
A Parameterized Unfold/Fold Transformation Framework for Definite Logic Programs
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Unfold/Fold Transformations For Definite Clause Programs
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Transformation of Left Terminating Programs
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Occam's Razor in Metacompuation: the Notion of a Perfect Process Tree
WSA '93 Proceedings of the Third International Workshop on Static Analysis
A Roadmap to Metacomputation by Supercompilation
Selected Papers from the Internaltional Seminar on Partial Evaluation
A Multiple-Clause Folding Rule Using Instantiation and Generalization
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
The transformational approach to program development
A 25-year perspective on logic programming
A Multiple-Clause Folding Rule Using Instantiation and Generalization
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Hi-index | 0.00 |
Program specialization is a program transformation methodology which improves program efficiency by exploiting the information about the input data which are available at compile time. We show that current techniques for program specialization based on partial evaluation do not perform well on nondeterministic logic programs. We then consider a set of transformation rules which extend the ones used for partial evaluation, and we propose a strategy for guiding the application of these extended rules so to derive very efficient specialized programs. The efficiency improvements which sometimes are exponential, are due to the reduction of nondeterminism and to the fact that the computations which are performed by the initial programs in different branches of the computation trees, are performed by the specialized programs within single branches. In order to reduce nondeterminism we also make use of mode information for guiding the unfolding process. To exemplify our technique, we show that we can automatically derive very efficient matching programs and parsers for regular languages. The derivations we have performed could not have been done by previously known partial evaluation techniques.