Understanding function behaviors through program slicing
- 1 January 1996
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- Vol. 3, 9-18
- https://doi.org/10.1109/wpc.1996.501116
Abstract
We present conditioned slicing as a general slicing framework for program comprehension. A conditioned slice consists of a subset of program statements which preserves the behavior of the original program with respect to a set of program executions. The set of initial states of the program that characterize these executions is specified in terms of a first order logic formula on the input variables of the program. Conditioned slicing allows a better decomposition of the program giving the maintainer the possibility to analyze code fragments with respect to different perspectives. We also show how slices produced with traditional slicing methods can be reduced to conditioned slices. Conditioned slices can be identified by using symbolic execution techniques and dependence graphKeywords
This publication has 23 references indexed in Scilit:
- Recovering reusable components from legacy systems by program segmentationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Automatic extraction of executable program subsets by simultaneous dynamic program slicingAutomated Software Engineering, 1995
- Understanding C programs using the Combined C Graph representationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1994
- Three approaches to interprocedural dynamic slicingMicroprocessing and Microprogramming, 1993
- Function recovery based on program slicingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1993
- Dynamic slicing of computer programsJournal of Systems and Software, 1990
- Interprocedural slicing using dependence graphsACM Transactions on Programming Languages and Systems, 1990
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- Delocalized Plans and Program ComprehensionIEEE Software, 1986
- Symbolic execution and program testingCommunications of the ACM, 1976