The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Gracefully adding negation and disjunction to Prolog
Proceedings on Third international conference on logic programming
Journal of Symbolic Computation
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Foundations of deductive databases and logic programming
A method for specializing logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
A treatment of negation during partial evaluation
Meta-programming in logic programming
A practical framework for the abstract interpretation of logic programs
Journal of Logic 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
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
Automatic online partial evaluation
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Essence of generalized partial computation
Theoretical Computer Science - Images of programming dedicated to the memory of Andrei P. Ershov
Abstract interpretation and application to logic programs
Journal of Logic Programming
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Multiple specialization using minimal-function graph semantics
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
Online partial deduction 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
Cost analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Implementation of multiple specialization in logic programs
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
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
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
Constrained partial deduction and the preservation of characteristic trees
New Generation Computing
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
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
An Introduction to Partial Deduction
META-92 Proceedings of the 3rd International Workshop on Meta-Programming in Logic
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
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
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
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
Self-Applicable Online Partial Evaluation
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
Preserving Universal Termination through Unfold/Fold
ALP '94 Proceedings of the 4th International Conference on Algebraic and Logic Programming
The Applicability of Logic Program Analysis and Transformation to Theorem Proving
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance
Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance
Computational problems in equational theorem proving
Computational problems in equational theorem proving
Some achievements and prospects in partial deduction
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)
Solving coverability problems of petri nets by partial deduction
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
Binding-Time Annotations Without Binding-Time Analysis
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
Advanced Logic Program Specialisation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Design and Implementation of the High-Level Specification Language CSP(LP) in Prolog
PADL '01 Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages
A New Termination Approach for Specialization
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Improving Homeomorphic Embedding for Online Termination
LOPSTR '98 Proceedings of the 8th International Workshop on Logic Programming Synthesis and Transformation
Automated Strategies for Specializing Constraint Logic Programs
LOPSTR '00 Selected Papers form the 10th International Workshop on Logic Based Program Synthesis and Transformation
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
Coverability of Reset Petri Nets and Other Well-Structured Transition Systems by Partial Deduction
CL '00 Proceedings of the First International Conference on Computational Logic
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
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)
Model checking object petri nets in prolog
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Self-tuning resource aware specialisation for prolog
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Derivation of Efficient Logic Programs by Specialization and Reduction of Nondeterminism
Higher-Order and Symbolic Computation
The Ecce and Logen partial evaluators and their web interfaces
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Termination of Floating-Point Computations
Journal of Automated Reasoning
Poly-controlled partial evaluation
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
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)
Efficient and flexible access control via Jones-optimal logic program specialisation
Higher-Order and Symbolic Computation
Declarative programming for verification: lessons and outlook
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
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
Provably Correct Code Generation: A Case Study
Electronic Notes in Theoretical Computer Science (ENTCS)
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
Binding-time analysis by constraint solving a modular and higher-order approach for mercury
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
Program specialization for verifying infinite state systems: an experimental evaluation
LOPSTR'10 Proceedings of the 20th 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
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
Towards provably correct code generation via horn logical continuation semantics
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Probabilistic termination of CHRiSM programs
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Controlling Polyvariance for Specialization-based Verification
Fundamenta Informaticae - Special Issue on the Italian Conference on Computational Logic: CILC 2011
Hi-index | 0.01 |
Given a program and some input data, partial deduction computes a specialized program handling any remaining input more efficiently.However, controlling the process well is a rather difficult problem.In this article, we elaborate global control for partial deduction:for which atoms, among possibly infinitely many, should specialized relations be produced, meanwhile guaranteeing correctness as well as termination? Our work is based on two ingredients. First, we use the concept of a characteristic tree, encapsulating specialization behavior rather than syntactic structure, to guide generalization and polyvariance, and we show how this can be done in a correct andelegant way. Second, we structure combinations of atoms and associated characteristic trees in global trees registering “causal” relationships among such pairs. This allows us to spot looming nontermination and perform proper generalization in order to avert the danger, without having to impose a depth bound on characteristic trees. The practical relevance and benefits of the work areillustrated through extensive experiments. Finally, a similar approach may improve upon current (on-line) control strategies for program transformation in general such as (positive) supercompilation of functional programs. It also seems valuable in the context of abstract interpretation to handle infinite domains of infinite height with more precision.