Abstract. Slicing is a technique for automatically obtaining subparts of a program with a collective meaning. When the slicing takes into account the actual execution of the program, it is said to be dynamic; when only statically available information is used, it is said to be static. In this paper we describe a flexible framework to slice logic programs that accommodates both dynamic and static approaches naturally. Our framework addresses practical aspects of logic programs such as different executions, system predicates and side-effects and can be customized to any logic language, provided we have its (concrete or abstract) interpreter and information on the behavior of system predicates.
|
1654
|
Foundations of Logic Programming
– Lloyd
- 1984
|
|
908
|
Program slicing
– Weiser
- 1984
|
|
519
|
Interprocedural slicing using dependence graphs
– Horwitz, Reps, et al.
- 1990
|
|
445
|
A survey of program slicing techniques
– Tip
- 1995
|
|
219
|
Programmers Use Slices When Debugging
– Weiser
- 1982
|
|
214
|
Using program slicing in software maintenance
– Gallagher, Lyle
- 1991
|
|
161
|
Dynamic program slicing
– Korel, Laski
- 1988
|
|
157
|
From Logic Programming to Prolog
– Apt
- 1997
|
|
146
|
The Art of Prolog: Advanced Programming Techniques
– Sterling, Shapiro
- 1986
|
|
78
|
Speeding up slicing
– Horwitz, Reps, et al.
- 1994
|
|
66
|
Abstract Interpretation of Prolog Programs
– Mellish
- 1986
|
|
57
|
A new model of program dependences for reverse engineering
– Jackson, Rollins
- 1994
|
|
51
|
Dynamic slicing in the presence of unconstrained pointers
– Agrawal, DeMillo, et al.
|
|
42
|
Concepts of Programming Languages
– Sebesta
- 2003
|
|
34
|
Warren's Abstract Machine
– Ait-Kaci
- 1991
|
|
32
|
Automatic mode inference for Prolog programs
– Debray, Warren
- 1986
|
|
32
|
A backward slicing algorithm for Prolog
– Schoenig, Ducasse
- 1996
|
|
29
|
Logic programming environments: Dynamic program analysis and debugging
– Ducassè, Noyè
- 1994
|
|
27
|
Beyond Traditional Program Slicing
– Sloane, Holdsworth
- 1996
|
|
25
|
A Simple Prolog Techniques Editor for Novice Users
– Robertson
- 1991
|
|
22
|
Flow Analysis of Prolog Programs
– Mannila, Ukkonen
- 1987
|
|
18
|
Applying Prolog programming techniques
– Vasconcelos
- 1994
|
|
18
|
Synthesis of Directionality Information for Functional Logic Programs
– Boye, Paakki, et al.
- 1993
|
|
15
|
Critical slicing for software fault localization
– DeMillo, Pan, et al.
- 1996
|
|
13
|
Analyzing success patterns of logic programs by abstract hybridinterpretation
– Kanamori, Kawamura
- 1987
|
|
9
|
Software Merging and Slicing
– Berzins
- 1995
|
|
9
|
Deriving Analysers by Folding/Unfolding of Natural Semantics and a Case Study: Slicing
– Gouranton
- 1998
|
|
5
|
Generalized Program Slicing for Software Maintenance
– Huang, Tsai, et al.
- 1996
|
|
4
|
Designing and Reusing Prolog Programming Techniques
– Extracting
- 1995
|
|
4
|
Prolog Program Development via Enhanced Schema-Based Transformations
– Vasconcelos, Fuchs
- 1996
|
|
3
|
Static Slicing of Logic Programs
– Guym'othy, Paaki
- 1995
|
|
2
|
Abstract Interpretation and Application to Logic Programs
– Cousout, Cousout
- 1992
|
|
2
|
Slicing Logic Programs
– Vasconcelos, Aragao
|
|
1
|
Dynamic Slicing: a Generic Analysis based on a
– Gouranton, M'etayer
- 1998
|