The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Kernel-LEAF: a logic plus functional language
Journal of Computer and System Sciences
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Logic programming with functions and predicates: the language Babel
Journal of Logic Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial on specialisation of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Combining functional and logic programming languages
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Slicing class hierarchies in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Term rewriting and all that
Partial evaluation for program comprehension
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Partial evaluation of functional logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Journal of the ACM (JACM)
Algorithmic Program DeBugging
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
A residualizing semantics for the partial evaluation of functional logic programs
Information Processing Letters
A Demand Driven Computation Strategy for Lazy Narrowing
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
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
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
Intermodular Slicing of Object-oriented Programs
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Proceedings of the Third International Conference on Algebraic and Logic Programming
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)
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
Haskell tools from the programatica project
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
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
Deriving a lazy abstract machine
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 by conjunctive partial deduction and argument filtering
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Source-Based trace exploration
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
Program slicing has been mainly studied in the context of imperative languages, where it has been applied to a wide variety of software engineering tasks, like program understanding, maintenance, debugging, testing, code reuse, etc. This work introduces the first forward slicing technique for declarative multi-paradigm programs which integrate features from functional and logic programming. Basically, given a program and a slicing criterion (a function call in our setting), the computed forward slice contains those parts of the original program which are reachable from the slicing criterion. Our approach to program slicing is based on an extension of (online) partial evaluation. Therefore, it provides a simple way to develop program slicing tools from existing partial evaluators and helps to clarify the relation between both methodologies. A slicing tool for the multi-paradigm language Curry, which demonstrates the usefulness of our approach, has been implemented in Curry itself.