Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Foundations of deductive databases and logic programming
Binding time analysis for high order untyped functional languages
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Mixtus: an automatic partial evaluator for full Prolog
New Generation Computing
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial evaluation of functional logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Polyvariant Binding-Time Analysis for Off-line Partial Deduction
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
BTA Algorithms to Ensure Termination of Off-Line Partial Evaluation
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Self-Applicable Online Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
Offline partial evaluation can be as accurate as online partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Offline specialisation in Prolog using a hand-written compiler generator
Theory and Practice of Logic Programming
Efficient and flexible access control via logic program specialisation
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
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
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Forward slicing by conjunctive partial deduction and argument filtering
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Fully automatic binding-time analysis for 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
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
Decompilation of Java bytecode to Prolog by partial evaluation
Information and Software Technology
Hi-index | 0.00 |
A major impediment for more widespread use of offline partial evaluation is the difficulty of obtaining and maintaining annotations for larger, realistic programs. Existing automatic binding-time analyses still only have limited applicability and annotations often have to be created or improved and maintained by hand, leading to errors. We present a technique to help overcome this problem by using online control techniques which supervise the specialisation process in order to detect such errors. We discuss an implementation in the LOGEN system and show on a series of examples that this approach is effective: very few false alarms were raised while infinite loops were detected quickly. We also present the integration of this technique into a web interface, which highlights problematic annotations directly in the source code. A method to automatically fix incorrect annotations is presented, allowing the approach to be also used as a pragmatic binding time analysis. Finally we show how our method can be used for efficiently locating errors with builtins inside Prolog source code.