Results 1 -
2 of
2
Forward Slicing by Conjunctive Partial Deduction and Argument Filtering
- Proceedings ESOP 2005, LNCS 3444
, 2005
"... Abstract. 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, ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Abstract. 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. 1
Slicing Knowledge-Based Systems: Techniques and Applications
- Knowledge based Systems Journal, Elsevier
, 2000
"... Slicing is a process for automatically obtaining subparts of a program with a collective meaning. It has been employed within conventional procedural programming to solve a number of software development issues. We have adapted and extended slicing techniques originally proposed for procedural lan ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Slicing is a process for automatically obtaining subparts of a program with a collective meaning. It has been employed within conventional procedural programming to solve a number of software development issues. We have adapted and extended slicing techniques originally proposed for procedural languages, to knowledge-based systems. Our techniques comprise a representation proposal for the successful and failed inferences performed by the system, a means to detect and represent the dependences among parts of the system, a formal definition of relevance among these parts and an algorithm proven correct to obtain executable slices of a system. We illustrate the usefulness of the slicing process with practical examples. Keywords. Slicing techniques, automated support, development and reuse of systems. 1 Introduction Knowledge-based systems (KBS's), as any other piece of software, are prone to the usual difficulties of program development, maintenance and reuse. Program slicing, a ...

