The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Design and implementation of a generic, logic and functional programming language
Proc. of the European symposium on programming on ESOP 86
Improving basic narrowing techniques
on Rewriting techniques and applications
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Computing in Horn clause theories
Computing in Horn clause theories
Foundations of deductive databases and logic programming
Journal of Symbolic Computation
Foundations of Equational Logic Programming
Foundations of Equational Logic Programming
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Algebraic properties of idempotent substitutions
Proceedings of the seventeenth international colloquium on Automata, languages and programming
Static and dynamic semantics processing
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Handbook of theoretical computer science (vol. B)
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
A partial evaluation procedure for logic programs
Proceedings of the 1990 North American conference on 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
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deductive and inductive synthesis of equational programs
Journal of Symbolic Computation - Special issue on automatic programming
Handbook of logic in computer science (vol. 2)
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Incremental constraint satisfaction for equational logic programming
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Higher-order expression procedures
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A compositional semantic basis for the analysis of equational Horn programs
ALP Proceedings of the fourth international conference on Algebraic and logic programming
Lazy narrowing: strong completeness and eager variable elimination
TAPSOFT '95 Selected papers from the 6th international joint conference on Theory and practice of software development
Specialization of lazy functional logic programs
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Term rewriting and all that
A unifying view of functional and logic program specialization
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity
Journal of the ACM (JACM)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program improvement by internal specialization
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Narrowing-Driven Partial Evaluation of Functional Logic Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Towards Unifying Partial Evaluation, Deforestation, Supercompilation, and GPC
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
On the Operational Semantics of the Algebraic and Logic Programming Language LPG
Selected papers from the 10th Workshop on Specification of Abstract Data Types Joint with the 5th COMPASS Workshop on Recent Trends in Data Type Specification
Compiling Logic Programs with Equality
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
Improving Control of Logic Programs by Using Functional Logic Languages
PLILP '92 Proceedings of the 4th 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 Layz Narrowing with Disequality Constraints
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
Controlling Conjunctive Partial Deduction
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
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
Unification in Conditional Equational Theories
EUROCAL '85 Research Contributions from the European Conference on Computer Algebra-Volume 2
Conjunctive Partial Deduction in Practice
LOPSTR '96 Proceedings of the 6th 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
Level-Confluence of Conditional Rewrite Systems with Extra Variables in Right-Hand Sides
RTA '95 Proceedings of the 6th International Conference on Rewriting Techniques and Applications
ASTRE: Towards a Fully Automated Program Transformation System
RTA '95 Proceedings of the 6th International Conference on Rewriting Techniques and Applications
A Survey of the Implementations of Narrowing
Seminar and Workshop on Declarative Programming
A Roadmap to Metacomputation by Supercompilation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Global Control for Partial Deduction through Characteristic Atoms and Global Trees
Selected Papers from the Internaltional Seminar on Partial Evaluation
A Comparative Revisitation of Some Program Transformation Techniques
Selected Papers from the Internaltional Seminar on Partial Evaluation
Metacomputation: Metasystem Transitions plus Supercompilation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Squeezing Intermediate Construction in Equational Programs
Selected Papers from the Internaltional Seminar on Partial Evaluation
Conditional Narrowing with Constructive Negation
ELP '92 Proceedings of the Third International Workshop on Extensions of Logic Programming
Efficient Implementation of Narrowing and Rewriting
PDK '91 Proceedings of the International Workshop on Processing Declarative Knowledge
Canonical Forms and Unification
Proceedings of the 5th Conference on Automated Deduction
On Comleteness of Narrowing Strategies
CAAP '88 Proceedings of the 13th Colloquium on Trees in Algebra and Programming
LSE Narrowing for Decreasing Conditional Term Rewrite Systems
CTRS '94 Proceedings of the 4th International Workshop on Conditional and Typed Rewriting Systems
Partial Evaluation of Functional Logic Programs in Rewriting-based Languages
Partial Evaluation of Functional Logic Programs in Rewriting-based Languages
Specialization of inductively sequential functional logic programs
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Solving coverability problems of petri nets by partial deduction
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative 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
Software as Learning: Quality Factors and Life-Cycle Revised
FASE '00 Proceedings of the Third Internationsl Conference on Fundamental Approaches to Software Engineering: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
A Partial Evaluation Framework for Curry Programs
LPAR '99 Proceedings of the 6th International Conference on Logic Programming and Automated Reasoning
Removing Redundant Arguments of Functions
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
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 Automatic Composition Algorithm for Functional Logic Programs
SOFSEM '00 Proceedings of the 27th Conference on Current Trends in Theory and Practice of Informatics
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
Thesis: partial evaluation of lazy functional logic programs
AI Communications
Rules + strategies for transforming lazy functional logic programs
Theoretical Computer Science
A framework for the integration of partial evaluation and abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
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 narrowing-driven partial evaluation for inductively sequential programs
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Partial evaluation of multi‐paradigm declarative languages: Thesis
AI Communications
Partial evaluation of lazy functional logic programs: Thesis
AI Communications
Removing redundant arguments automatically
Theory and Practice of Logic Programming
Forward slicing of functional logic programs by partial evaluation
Theory and Practice of Logic Programming
Narrowing and Rewriting Logic: from Foundations to Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
An improved reductant calculus using fuzzy partial evaluation techniques
Fuzzy Sets and Systems
A Modular Equational Generalization Algorithm
Logic-Based Program Synthesis and Transformation
Electronic Notes in Theoretical Computer Science (ENTCS)
Termination of narrowing revisited
Theoretical Computer Science
Supervising offline partial evaluation of logic programs using online techniques
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
Improving offline narrowing-driven partial evaluation using size-change graphs
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
Forward slicing of multi-paradigm declarative programs based on partial evaluation
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
Using an abstract representation to specialize functional logic programs
LPAR'00 Proceedings of the 7th international conference on Logic for programming and automated reasoning
Solving planning problems by partial deduction
LPAR'00 Proceedings of the 7th international conference on Logic for programming and automated reasoning
Symbolic model checking of infinite-state systems using narrowing
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
An integrated framework for the diagnosis and correction of rule-based programs
Theoretical Computer Science
Transformation and debugging of functional logic programs
A 25-year perspective on logic programming
Folding variant narrowing and optimal variant termination
WRLA'10 Proceedings of the 8th international conference on Rewriting logic and its applications
Taming code explosion in supercompilation
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Declarative programming with function patterns
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Proving the equivalence of higher-order terms by means of supercompilation
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Hi-index | 0.00 |
Languages that integrate functional and logic programming with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. In this article, we present a partial evaluation scheme for functional logic languages based on an automatic unfolding algorithm which builds narrowing trees. The method is formalized within the theoretical framework established by Lloyd and Shepherdson for the partial deduction of logic programs, which we have generalized for dealing with functional computations. A generic specialization algorithm is proposed which does not depend on the eager or lazy nature of the narrower being used. To the best of our knowledge, this is the first generic algorithm for the specialization of functional logic programs. We also discuss the relation to work on partial evaluation in functional programming, term-rewriting systems, and logic programming. Finally, we present some experimental results with an implementation of the algorithm which show in practice that the narrowing-driven partial evaluator effectively combines the propagation of partial data structures (by means of logical variables and unification) with better opportunities for optimization (thanks to the functional dimension).