The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Experimental results from dynamic slicing of C programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static and Dynamic Slicing of Constraint Logic Programs
Automated Software Engineering
Redundant Argument Filtering of Logic Programs
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
Program Specialization via Program Slicing
Selected Papers from the Internaltional Seminar on Partial Evaluation
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
Dynamic slicing in higher-order programming languages
Dynamic slicing in higher-order programming languages
Higher-order narrowing with definitional trees
Journal of Functional Programming
A semantics for tracing declarative multi-paradigm programs
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Dynamic slicing based on redex trails
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Operational semantics for declarative multi-paradigm languages
Journal of Symbolic Computation
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
Static Slicing of Rewrite Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
The Interactive Curry Observation Debugger iCODE
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Program slicing is a well-known technique that extracts from a program those statements which are relevant to a particular criterion. While static slicing does not consider any input data, dynamic slices are computed from a particular program execution. Thus, dynamic slicers are usually easier to design and implement.In this work, we present a program specialization technique for lazy functional logic programming which is based on dynamic slicing. Our method exploits the code size reduction capabilities of slicing in order to produce a version of the original program specialized w.r.t. a given criterion. We also introduce some simple, post-processing transformations that allow us to further simplify the specialized program. The kind of specialization performed by our approach cannot be achieved with other related techniques like partial evaluation.