Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
A partial evaluation system for Prolog: some practical considerations
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
Partial evaluation in logic programming
Journal of Logic Programming
Tutorial on specialisation of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Mixtus: an automatic partial evaluator for full Prolog
New Generation Computing
Towards fast and declarative meta-programming
Meta-logics and logic programming
Distributed partial evaluation
PASCO '97 Proceedings of the second international symposium on Parallel symbolic computation
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Symbolic Profiling for Multi-paradigm Declarative Languages
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
Conjunctive Partial Deduction in Practice
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Introduction to Evolutionary Computing
Introduction to Evolutionary Computing
Offline specialisation in Prolog using a hand-written compiler generator
Theory and Practice of Logic Programming
Cost-Augmented Partial Evaluation of Functional Logic Programs
Higher-Order and Symbolic Computation
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Fully automatic binding-time analysis for prolog
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Run-time profiling of functional logic programs
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
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
Poly-controlled partial evaluation
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative 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)
Towards execution time estimation in abstract machine-based languages
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Oracle-Based Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Trace Analysis for Predicting the Effectiveness of Partial Evaluation
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
User-Definable Resource Usage Bounds Analysis for Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
User-definable resource bounds analysis for logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
Cost analysis of object-oriented bytecode programs
Theoretical Computer Science
Using combined static analysis and profiling for logic program execution time estimation
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Combining static analysis and profiling for estimating execution times
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.00 |
The paper develops a self-tuning resource aware partial evaluation technique for Prolog programs, which derives its own control strategies tuned for the underlying computer architecture and Prolog compiler using a genetic algorithm approach. The algorithm is based on mutating the annotations of offline partial evaluation. Using a set of representative sample queries it decides upon the fitness of annotations, controlling the trade-off between code explosion, speedup gained and specialisation time. The user can specify the importance of each of these factors in determining the quality of the produced code, tailoring the specialisation to the particular problem at hand. We present experimental results for our implemented technique on a series of benchmarks. The results are compared against the aggressive termination based binding-time analysis and optimised using different measures for the quality of code. We also show that our technique avoids some classical pitfalls of partial evaluation.