Program Slicing
G. B. Mund, Rajib Mall · 2007
Cited by 4
Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.
About 1,590 papers for “Program slicing”
G. B. Mund, Rajib Mall · 2007
Cited by 4
G. B. Mund, D. Goswami, Rajib Mall · 2002
Cited by 2
Harman, Mark, Gallagher, Keith Brian · Research Portal (King's College London) · 1998
Cited by 0
Krinke, J · UCL Discovery (University College London) · 2005
© 2005 by World Scientific Publishing Co. Pte. Ltd. All rights reserved. Program slicing is a technique to identify statements that may influence the computations of other statements. The original goal was to aid program understanding and debugging. Program slicing is now used as a base technique in other applications. Researchers in several areas of software engineering have suggested applications in program comprehension, software maintenance, reverse engineering and evolution, testing, and even verification. The following will give an overview of program slicing, including recent developments. This overview covers static as well as dynamic slicing. It contains a discussion of applications and basic approaches to compute slices, shows problems and their solutions, together with refinements of slicing.
Cited by 0
David Binkley, Keith Gallagher · Advances in computers · 1996
Cited by 170
Mark Weiser · IEEE Transactions on Software Engineering · 1984
Program slicing is a method for automatically decomposing programs by analyzing their data flow and control flow. Starting from a subset of a program's behavior, slicing reduces that program to a minimal form which still produces that behavior. The reduced program, called a ``slice,'' is an independent program guaranteed to represent faithfully the original program within the domain of the specified subset of behavior. Some properties of slices are presented. In particular, finding statement-minimal slices is in general unsolvable, but using data flow analysis is sufficient to find approximate slices. Potential applications include automatic slicing tools for debuggng and parallel processing of slices.
Cited by 3,186
Harman, Mark, Gallagher, Keith Brian · 1998
Cited by 0
Harman, M, Gallagher, KB · UCL Discovery (University College London) · 1998
Cited by 0
Keith Gallagher, David Binkley · 2008
Program slicing is a decomposition technique that slides program components not relevant to a chosen computation, referred to as a slicing criterion. The remaining components form an executable program called a slice that computes a projection of the original programpsilas semantics. Using examples coupled with fundamental principles, a tutorial introduction to program slicing is presented. Then applications of program slicing are surveyed, ranging from its first use as a debugging technique to current applications in property verification using finite state models. Finally, a summary of research challenges for the slicing community is discussed.
Cited by 64
Keith Gallagher, David Binkley · 2010
Program slicing is a decomposition technique that elides program components not relevant to a chosen computation, referred to as a slicing criterion. The remaining components form an executable program called a slice that computes a projection of the original program’s semantics. Using examples coupled with fundamental principles, a tutorial introduction to program slicing is presented. Then applications of program slicing are surveyed, ranging from its first use as a debugging technique to current applications in property verification using finite state models. Finally, a summary of research challenges for the slicing community is discussed.
Cited by 0
John K. Field, G. Ramalingam, Frank Tip · 1995
Program slicing is a technique for isolating computational threads in programs. In this paper, we show how to mechanically extract a family of practical algorithms for computing slices directly from semantic specifications. These algorithms are based on combining the notion of dynamic dependence tracking in term rewriting systems with a program representation whose behavior is defined via an equational logic. Our approach is distinguished by the fact that changes to the behavior of the slicing algorithm can be accomplished through simple changes in rewriting rules that define the semantics of the program representation. Thus, e.g., different notions of dependence may be specified, properties of language-specific datatypes can be exploited, and various time, space, and precision tradeoffs may be made. This flexibility enables us to generalize the traditional notions of static and dynamic slices to that of a constrained slice, where any subset of the inputs of a program may be supplied.
Cited by 107Open access
Philip A. Hausler · 2003
An original, theoretical definition of denotational program slicing is presented. Program slicing is a method for automatic program decomposition that is based exclusively on control and data-flow information. Denotational slicing makes use of the functional semantics of a particular programming language and defines the various domains and appropriate mappings between them. Transformations are defined for each of the language constructs and applied to programs in a mathematical and systematic fashion. It is shown that program slices can be constructed denotationally and as a direct result can be specified precisely and simply.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>
Cited by 36
Han, Li · Library and Archives Canada (Government of Canada) · 2001
Cited by 0
Bogdan Korel, Janusz Łaski · Information Processing Letters · 1988
Cited by 764
Sheng Hui Shi, Qun Zhu, Zhi Qiang Geng · Applied Mechanics and Materials · 2012
With the complexity of language structure, the problem of slice’s executability has gradually become people’s focus of attention. The research combines program slicing and path coverage according to their features, makes an attempt to propose the model of executable program slicing, and presents the executable slicing algorithm, which plays an important role in the automation of software analysis.
Cited by 0
Gerardo Canfora, A. Cimitile, Andrea De Lucia · Information and Software Technology · 1998
Cited by 204
Hiralal Agrawal, J.R. Horgan · ACM SIGPLAN Notices · 1990
Program slices are useful in debugging, testing, maintenance, and understanding of programs. The conventional notion of a program slice, the static slice , is the set of all statements that might affect the value of a given variable occurrence. In this paper, we investigate the concept of the dynamic slice consisting of all statements that actually affect the value of a variable occurrence for a given program input. The sensitivity of dynamic slicing to particular program inputs makes it more useful in program debugging and testing than static slicing. Several approaches for computing dynamic slices are examined. The notion of a Dynamic Dependence Graph and its use in computing dynamic slices is discussed. The Dynamic Dependence Graph may be unbounded in length; therefore, we introduce the economical concept of a Reduced Dynamic Dependence Graph, which is proportional in size to the number of dynamic slices arising during the program execution.
Cited by 278
Hiroshi Maruyama, K. Araki · 2003
VRML (Virtual Reality Modeling Language) is a programming language with promising effectiveness in describing cyberspace because of its real-time expressive power for 3D objects via the Internet. Concerning its 3D design, CAD tools can support static feature developments effectively, but currently, developments of dynamic features such as animation cannot be supported well, thus the tasks of debugging, testing, and behavior parameter adjustment become difficult. A program slicing technique is effective for such tasks. Thus we have applied it into VRML programs. In this paper, we studied VRML program structures and features, then proposed various kinds of dependency in VRML, and also proposed a VRML slicing approach based on such dependency. Finally we implemented several support tools.
Cited by 1
Lewis I. Berman, Keith B. Gallagher · 1996
Comprehending a computer program can be a daunting task. There is much to understand, including the interaction among different portions of the code. Program slicing can help one to understand this interaction. Because present-day visual development environments tend to become cluttered, the authors have explored sonification of program slices in an attempt to determine if it is practical to offload some of the visual information. Three slice sonification techniques were developed, resulting in an understanding of how to sonify slices in a manner appropriate for the software developer undertaking program comprehension activities. The investigation has also produced a better understanding of sonification techniques that are musical yet non-melodic and non-harmonic. These techniques were demonstrated to a small set of developers, each reporting that the techniques are promising and useful. 1.
Cited by 0
Phillip James · 2012
Cited by 0