A brief survey of program slicing
Top Cited Papers
- 1 March 2005
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGSOFT Software Engineering Notes
- Vol. 30 (2) , 1-36
- https://doi.org/10.1145/1050849.1050865
Abstract
Program slicing is a technique to extract program parts with respect to some special computation. Since Weiser first proposed the notion of slicing in 1979, hundreds of papers have been presented in this area. Tens of variants of slicing have been studied, as well as algorithms to compute them. Different notions of slicing have different properties and different applications. These notions vary from Weiser's syntax-preserving static slicing to amorphous slicing which is not syntax-preserving, and the algorithms can be based on dataflow equations, information-flow relations or dependence graphs.Slicing was first-developed to facilitate debugging, but it is then found helpful in many aspects of the software development life cycle, including program debugging, software testing, software measurement, program comprehension, software maintenance, program parallelization and so on.Over the last two decades, several surveys on program slicing have been presented. However, most of them only reviewed parts of researches on program slicing or have now been out of date. People who are interested in program slicing need more information about the up to date researches. Our survey fills this gap. In this paper, we briefly review most of existing slicing techniques including static slicing, dynamic slicing and the latest slicing techniques. We also discuss the contribution of each work and compare the major difference between them. Researches on slicing are classified by the research hot spots such that people can be kept informed of the overall program slicing researches.Keywords
This publication has 235 references indexed in Scilit:
- ConSUS: a light-weight program conditionerJournal of Systems and Software, 2005
- A compact execution history for dynamic slicingInformation Processing Letters, 2003
- Evaluating the effectiveness of pointer alias analysesScience of Computer Programming, 2001
- Decomposing legacy programs: a first step towards migrating to client–server platformsJournal of Systems and Software, 2000
- Issues in slicing PROMELA and its applications to model checking, protocol understanding, and simulationInternational Journal on Software Tools for Technology Transfer, 2000
- Using design abstractions to visualize, quantify, and restructure softwareJournal of Systems and Software, 1998
- Application of the pointer state subgraph to static program slicingJournal of Systems and Software, 1998
- A parallel algorithm for static program slicingInformation Processing Letters, 1995
- Dynamic slicing of computer programsJournal of Systems and Software, 1990
- Data flow testing in STADJournal of Systems and Software, 1990