Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
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
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)
Self-tuning resource aware specialisation for prolog
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
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
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
Efficient local unfolding with ancestor stacks for full prolog
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Hi-index | 0.00 |
Poly-controlled partial evaluation (PCPE) is a flexible approach for specializing logic programs, which has been recently proposed. It takes into account repertoires of global control and local control rules instead of a single, predetermined, combination. Thus, different global and local control rules can be assigned to different call patterns, obtaining results that are hybrid in the sense that they cannot be obtained using a single combination of control rules, as traditional partial evaluation does. PCPE can be implemented as a search-based algorithm, producing sets of candidate specialized programs (many of them hybrid), instead of a single one. The quality of each of these programs is assessed through the use of different fitness functions, which can be resource aware, taking into account multiple factors such as run-time, memory consumption, and code size of the specialized programs, among others. Although PCPE is an appealing approach, it suffers from an inherent blowup of its search space when implemented as a search-based algorithm. Thus, in order to be used in practice, and to deal with realistic programs, we must be able to prune its search space without losing the interesting solutions. The contribution of this work is two-fold. On one hand we perform an experimental study on the heterogeneity of solutions obtained by search-based PCPE, showing that the solutions provided behave very differently when compared using a fitness function. Note that this is important since otherwise the cost of producing a large number of candidate specializations would not be justified. The second contribution of this work is the introduction of a technique for pruning the search space of this approach. The proposed technique is easy to apply and produces a considerable reduction of the size of the search space, allowing PCPE to deal with a reasonable number of benchmark programs. Although pruning is done in a heuristic way, our experimental results suggest that our heuristic behaves well in practice, since the fitness value of the solutions obtained using pruning coincide with the fitness value of the solution obtained when no pruning is applied.