The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Journal of Symbolic Computation
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
A self-applicable partial evaluator and its use in incremental compilation
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
Mixed computation of Prolog programs
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
Partial evaluation of metaprograms in a “Multiple Worlds" logic language
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
A partial evaluation system for Prolog: some practical considerations
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
Foundations of deductive databases and logic programming
Journal of Logic Programming
Metainterpreters for expert system construction
Journal of Logic Programming
A method for specializing logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A treatment of negation during partial evaluation
Meta-programming in logic programming
Issues in the partial evaluation of meta-interpreters
Meta-programming in logic programming
Handbook of theoretical computer science (vol. B)
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
Semantics preserving transformation rules for Prolog
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
Partial evaluation of a CLP language
Proceedings of the 1990 North American conference on Logic programming
A partial evaluation procedure for logic programs
Proceedings of the 1990 North American conference on 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
Online partial deduction 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
The 3 R's of optimizing constraint logic programs: refinement, removal and reordering
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of Symbolic Computation - Special issue on automatic programming
Control generation for logic programs
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
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
Unification factoring for efficient execution of logic programs
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partial deduction of logic programs wrt well-founded semantics
New Generation Computing
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
Towards creating specialised integrity checks through partial evaluation of meta-interpreters
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Towards fast and declarative meta-programming
Meta-logics and logic programming
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
Transformations of CLP modules
Theoretical Computer Science
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Specialization of lazy functional logic programs
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Resource-bounded partial evaluation
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)
Constrained partial deduction and the preservation of characteristic trees
New Generation Computing
Extending partial deduction to tabled execution: some results and open issues
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)
Transforming constraint logic programs
Theoretical Computer Science
Program specialisation and abstract interpretation reconciled
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Constraint-based termination analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Binding-time analysis for mercury
Proceedings of the 1999 international conference on Logic 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
Proving termination with multiset orderings
Communications of the ACM
Logic programming revisited: logic programs as inductive definitions
ACM Transactions on Computational Logic (TOCL) - Special issue devoted to Robert A. Kowalski
Regular Tree Languages as an Abstract Domain in Program Specialisation
Higher-Order and Symbolic Computation
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
A Polyvariant Binding-Time Analysis for Off-line Partial Deduction
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
Proceedings of the First Russian Conference on Logic Programming
Soundness and Completeness of Partial Deductions for Well-Founded Semantics
LPAR '92 Proceedings of the International Conference on Logic Programming and Automated Reasoning
An Introduction to Partial Deduction
META-92 Proceedings of the 3rd International Workshop on Meta-Programming in Logic
Partial Deduction and Driving are Equivalent
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Hand-Writing Program Generator Generators
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
Logic Program Specialisation: How To Be More Specific
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Generating Efficient, Terminating Logic Programs
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
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
BTA Algorithms to Ensure Termination of Off-Line Partial Evaluation
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Infinite State Model Checking by Abstract Interpretation and Program Specialisation
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming 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
Partial Evaluation of the "Real Thing"
LOPSTR '94/META '94 Proceedings of the 4th International Workshops on Logic Programming Synthesis and Transformation - Meta-Programming in Logic
Transformation of Left Terminating Programs: the Reordering Problem
LOPSTR '95 Proceedings of the 5th International Workshop on Logic Programming Synthesis and Transformation
Ecological Partial Deduction: Preserving Characteristic Trees Without Constraints
LOPSTR '95 Proceedings of the 5th International Workshop on Logic Programming Synthesis and Transformation
Redundant Argument Filtering of Logic Programs
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Replacement Can Preserve Termination
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Abstract Specialization and Its Application to Program Parallelization
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Conjunctive Partial Deduction in Practice
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Tupling Functions with Multiple Recursion Parameters
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
Efficiently Generating Efficient Generating Extensions in Prolog
Selected Papers from the Internaltional Seminar on Partial Evaluation
Regular Approximation of Computation Paths in Logic and Functional Languages
Selected Papers from the Internaltional Seminar on Partial Evaluation
Squeezing Intermediate Construction in Equational Programs
Selected Papers from the Internaltional Seminar on Partial Evaluation
Partial Evaluation of C and Automatic Compiler Generation (Extended Abstract)
CC '92 Proceedings of the 4th International Conference on Compiler Construction
Preserving Universal Termination through Unfold/Fold
ALP '94 Proceedings of the 4th International Conference on Algebraic and Logic Programming
Convergence of Program Transformers in the Metric Space of Trees
MPC '98 Proceedings of the Mathematics of Program Construction
The Applicability of Logic Program Analysis and Transformation to Theorem Proving
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
Combining Abstract Interpretation and Partial Evaluation (Brief Overview)
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Abstract specialization and its applications
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Offline specialisation in Prolog using a hand-written compiler generator
Theory and Practice of Logic Programming
Advanced techniques for logic program specialisation
AI Communications
Abstract Conjunctive Partial Deduction Using Regular Types and Its Application to Model Checking
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
Proceedings of the 2nd international conference on Generative programming and component engineering
A framework for the integration of partial evaluation and abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Self-tuning resource aware specialisation for prolog
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Poly-controlled partial evaluation
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Quasi-terminating logic programs for ensuring the termination of partial evaluation
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Poly-controlled partial evaluation in practice
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A Study on the Practicality of Poly-Controlled Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Improving the Decompilation of Java Bytecode to Prolog by Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient and flexible access control via Jones-optimal logic program specialisation
Higher-Order and Symbolic Computation
Oracle-Based Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Type-Based Homeomorphic Embedding and Its Applications to Online Partial Evaluation
Logic-Based Program Synthesis and Transformation
Fast Offline Partial Evaluation of Large Logic Programs
Logic-Based Program Synthesis and Transformation
Type-based homeomorphic embedding for online termination
Information Processing Letters
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
Parametric inference of memory requirements for garbage collected languages
Proceedings of the 2010 international symposium on Memory management
The transformational approach to program development
A 25-year perspective on logic programming
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
Science of Computer Programming
Efficient local unfolding with ancestor stacks*
Theory and Practice of Logic Programming
Abstract interpretation with specialized definitions
SAS'06 Proceedings of the 13th international conference on Static Analysis
Transformational verification of parameterized protocols using array formulas
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Removing superfluous versions in polyvariant specialization of prolog programs
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Non-leftmost unfolding in partial evaluation of logic programs with impure predicates
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Towards just-in-time partial evaluation of prolog
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
Forward slicing by conjunctive partial deduction and argument filtering
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Efficient local unfolding with ancestor stacks for full prolog
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Using real relaxations during program specialization
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Verifying programs via iterated specialization
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Controlling Polyvariance for Specialization-based Verification
Fundamenta Informaticae - Special Issue on the Italian Conference on Computational Logic: CILC 2011
Hi-index | 0.00 |
Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input. It is achieved through a well-automated application of parts of the Burstall-Darlington unfold/fold transformation framework. The main challenge in developing systems is to design automatic control that ensures correctness, efficiency, and termination. This survey and tutorial presents the main developments in controlling partial deduction over the past 10 years and analyses their respective merits and shortcomings. It ends with an assessment of current achievements and sketches some remaining research challenges.