Conditional rewrite rules: Confluence and termination
Journal of Computer and System Sciences
Design and implementation of a generic, logic and functional programming language
Proc. of the European symposium on programming on ESOP 86
Program transformation by supercompilation
on Programs as data objects
Improving basic narrowing techniques
on Rewriting techniques and applications
Foundations of deductive databases and logic programming
Foundations of Equational Logic Programming
Foundations of Equational Logic Programming
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Kernel-LEAF: a logic plus functional language
Journal of Computer and System Sciences
Handbook of theoretical computer science (vol. B)
Partial evaluation in logic programming
Journal of Logic Programming
Logic programming with functions and predicates: the language Babel
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
Towards an automated tupling strategy
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Handbook of logic in computer science (vol. 2)
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Narrowing-Driven Partial Evaluation of Functional Logic Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Compiling Logic Programs with Equality
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
A Demand Driven Computation Strategy for Lazy Narrowing
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
Partial Deduction and Driving are Equivalent
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Combining Lazy Narrowing and Simplification
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Unification in Conditional Equational Theories
EUROCAL '85 Research Contributions from the European Conference on Computer Algebra-Volume 2
Redundant Argument Filtering of Logic Programs
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Canonical Forms and Unification
Proceedings of the 5th Conference on Automated Deduction
Lazy Narrowing in a Graph Machine
Proceedings of the Second International Conference on Algebraic and Logic Programming
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A unifying view of functional and logic program specialization
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Partial evaluation of functional logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specialization of inductively sequential functional logic programs
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
A Partial Evaluation Framework for Curry Programs
LPAR '99 Proceedings of the 6th International Conference on Logic Programming and Automated Reasoning
Improving On-Demand Strategy Annotations
LPAR '02 Proceedings of the 9th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Removing Redundant Arguments of Functions
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
On the Correctness of the Factoring Transformation
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Improving Homeomorphic Embedding for Online Termination
LOPSTR '98 Proceedings of the 8th International Workshop on Logic Programming Synthesis and Transformation
Partial evaluation of pattern matching in strings, revisited
Nordic Journal of Computing
Fast partial evaluation of pattern matching in strings
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The abstraction and instantiation of string-matching programs
The essence of computation
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
Thesis: partial evaluation of lazy functional logic programs
AI Communications
Refining weakly outermost-needed rewriting and narrowing
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Cost-Augmented Partial Evaluation of Functional Logic Programs
Higher-Order and Symbolic Computation
Specialization of functional logic programs based on needed narrowing
Theory and Practice of Logic Programming
Fast partial evaluation of pattern matching in strings
ACM Transactions on Programming Languages and Systems (TOPLAS)
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Partial evaluation of lazy functional logic programs: Thesis
AI Communications
Infinite Unfolding and Transformations of Nondeterministic Programs
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 1
Removing redundant arguments automatically
Theory and Practice of Logic Programming
An improved reductant calculus using fuzzy partial evaluation techniques
Fuzzy Sets and Systems
Preserving Sharing in the Partial Evaluation of Lazy Functional Programs
Logic-Based Program Synthesis and Transformation
Thresholded Tabulation in a Fuzzy Logic Setting
Electronic Notes in Theoretical Computer Science (ENTCS)
On-demand strategy annotations revisited: An improved on-demand evaluation strategy
Theoretical Computer Science
Transformation and debugging of functional logic programs
A 25-year perspective on logic programming
Infinite Unfolding and Transformations of Nondeterministic Programs
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 1
Hi-index | 0.00 |
Partial evaluation is a method for program specialization based on fold/unfold transformations [8, 25]. Partial evaluation of pure functional programs uses mainly static values of given data to specialize the program [15, 44]. In logic programming, the so-called static/dynamic distinction is hardly present, whereas considerations of determinacy and choice points are far more important for control [12]. We discuss these issues in the context of a (lazy) functional logic language. We formalize a two-phase specialization method for a non-strict, first order, integrated language which makes use of lazy narrowing to specialize the program w.r. t. a goal. The basic algorithm (first phase) is formalized as an instance of the framework for the partial evaluation of functional logic programs of [2, 3], using lazy narrowing. However, the results inherited by [2, 3] mainly regard the termination of the PE method, while the (strong) soundness and completeness results must be restated for the lazy strategy. A post-processing renaming scheme (second phase) is necessary which we describe and illustrate on the well-known matching example. This phase is essential also for other non-lazy narrowing strategies, like innermost narrowing, and our method can be easily extended to these strategies. We show that our method preserves the lazy narrowing semantics and that the inclusion of simplification steps in narrowing derivations can improve control during specialization.