The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial evaluation in logic programming
Journal of Logic Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Constrained partial deduction and the preservation of characteristic trees
New Generation Computing
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
Static and Dynamic Slicing of Constraint Logic Programs
Automated Software Engineering
A Flexible Framework for Dynamic and Static Slicing of Logic Programs
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
Infinite State Model Checking by Abstract Interpretation and Program Specialisation
LOPSTR'99 Selected papers from the 9th 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
A Backward Slicing Algorithm for Prolog
SAS '96 Proceedings of the Third International Symposium on Static Analysis
A Roadmap to Metacomputation by Supercompilation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Program Specialization via Program Slicing
Selected Papers from the Internaltional Seminar on Partial Evaluation
The Applicability of Logic Program Analysis and Transformation to Theorem Proving
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
A Program Dependence Model for Concurrent Logic Programs and Its Applications
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Forward slicing of multi-paradigm declarative programs based on partial evaluation
LOPSTR'02 Proceedings of the 12th 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
Forward slicing of functional logic programs by partial evaluation
Theory and Practice of Logic Programming
Non-discriminating Arguments and Their Uses
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
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
Resource-Driven CLP-Based test case generation
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Hi-index | 0.00 |
Program slicing is a well-known methodology that aims at identifying the program statements that (potentially) affect the values computed at some point of interest. Within imperative programming, this technique has been successfully applied to debugging, specialization, reuse, maintenance, etc. Due to its declarative nature, adapting the slicing notions and techniques to a logic programming setting is not an easy task. In this work, we define the first, semantics-preserving, forward slicing technique for logic programs. Our approach relies on the application of a conjunctive partial deduction algorithm for a precise propagation of information between calls. We do not distinguish between static and dynamic slicing since partial deduction can naturally deal with both static and dynamic data. A slicing tool has been implemented in ecce, where a post-processing transformation to remove redundant arguments has been added. Experiments conducted on a wide variety of programs are encouraging and demonstrate the usefulness of our approach, both as a classical slicing method and as a technique for code size reduction.