Polymorphic type inference in Prolog by abstract interpretation
Proceedings of the 6th Conference on Logic programming '87
Analysing logic programs using “prop”-ositional logic programs and a magic wand
ILPS '93 Proceedings of the 1993 international symposium on Logic programming
Two semantics for definite meta-programs, using the non-ground representation
Meta-logics and logic programming
Type dependencies for logic programs using ACI-unification
Theoretical Computer Science
Binding-time analysis for mercury
Proceedings of the 1999 international conference on Logic programming
A Polyvariant Binding-Time Analysis for Off-line Partial Deduction
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Inferring Termination Conditions for Logic Programs Using Backwards Analysis
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
Binding-Time Annotations Without Binding-Time Analysis
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
Abstracting s-semantincs Using A Model-Theoretic Approach
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Termination Analysis for Tabled Logic Programming
LOPSTR '97 Proceedings of the 7th International Workshop on Logic Programming Synthesis and Transformation
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
A Systematic Construction of Abstract Domains
SAS '94 Proceedings of the First International Static Analysis Symposium on Static Analysis
Offline specialisation in Prolog using a hand-written compiler generator
Theory and Practice of Logic Programming
Computing convex hulls with a linear solver
Theory and Practice of Logic Programming
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
Self-tuning resource aware specialisation for prolog
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
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
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
Fast Offline Partial Evaluation of Large Logic Programs
Logic-Based Program Synthesis and Transformation
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
Efficient local unfolding with ancestor stacks*
Theory and Practice of Logic Programming
Techniques for scaling up analyses based on pre-interpretations
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Converting one type-based abstract domain to another
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Fast and accurate strong termination analysis with an application to partial evaluation
WFLP'09 Proceedings of the 18th international conference on Functional and Constraint Logic Programming
Hi-index | 0.00 |
Offline partial evaluation techniques rely on an annotated version of the source program to control the specialisation process. These annotations guide the specialisation and ensure the termination of the partial evaluation. We present an algorithm for generating these annotations automatically. The algorithm uses state-of-the-art termination analysis techniques, combined with a new type-based abstract interpretation for propagating the binding types. This algorithm has been implemented as part of the logen partial evaluation system, along with a graphical annotation visualiser and editor, and we report on the performance of the algorithm for a series of benchmarks.