ACM Home Page
Please provide us with feedback. Feedback
A brief survey of program slicing
Full text PdfPdf (535 KB)
Source ACM SIGSOFT Software Engineering Notes archive
Volume 30 ,  Issue 2  (March 2005) table of contents
SECTION: Article abstracts with full text online table of contents
Pages: 1 - 36  
Year of Publication: 2005
ISSN:0163-5948
Authors
Baowen Xu  Southeast University, China
Ju Qian  Southeast University, China
Xiaofang Zhang  Southeast University, China
Zhongqiang Wu  Southeast University, China
Lin Chen  Southeast University, China
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 61,   Downloads (12 Months): 539,   Citation Count: 13
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1050849.1050865
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
{Agrawal 1988} Hiralal Agrawal, Richard DeMillo and Eugene Spafford, A process state model to relate testing and debugging. Technical Report SERC-TR-27-P, Purdue University, 1988.
 
3
{Agrawal 1989} Hiralal Agrawal and Joseph R. Horgan, Dynamic program slicing, Technical Report SERC-TR-56-P, Purdue University, 1989.
4
5
 
6
 
7
 
8
9
10
 
11
{Ahn 1999} Joonseon Ahn and Taisook Han, Static slicing of a first-order functional language based on operational semantics, Korea Advanced Institute of Science & Technology (KAIST) Technical Report CS/TR-99-144, Dec. 1999.
 
12
{Allen 1972} Frances E. Allen and John Cocke, Graph theoretic constructs for program control flow analysis, Technical Report RC 3923 (No. 17789), IBM, Thomas J. Watson Research Center, New York, July 1972.
13
14
 
15
 
16
 
17
{Andersen 1994} Lars Ole. Andersen, Program analysis and specialization for the C programming language, PhD thesis, DIKU, University of Copenhagen, May 1994.
 
18
{Anderson 2001} Paul Anderson and Tim Teitelbaum, Software inspection using Codesurfer, In Workshop on Inspection in Software Engineering (CAV 2001), 2001.
 
19
 
20
 
21
{Ashcroft 1971} E. Ashcroft and Zohar Manna, The translation of verb -goto- programs into verb -while- programs, IFIP Congress, Amsterdam, 1971.
 
22
23
 
24
25
 
26
{Ball 1989} Thomas Ball, Susan Horwitz and Thomas Reps, Correctness of an algorithm for reconstituting a program from a dependence graph, Computer Sciences Dept., Univ. of Wisconsin, Madison, Technical Report in preparation, Spring 1989.
 
27
 
28
 
29
{Ball 1994a} Thomas Ball and Stephen G. Eick, Visualizing program slices, Proceedings of IEEE Symposium on Visual Languages, pp. 288--295, 1994.
30
 
31
{Balance 1992} Robert A. Balance and Arthur B. Maccabe, Program dependence graphs for the rest of us, Technical Report, The University of New Mexico, Oct. 1992.
 
32
33
 
34
 
35
36
 
37
 
38
 
39
40
 
41
 
42
{Beszédes 2001a} Árpád Beszédes, Tamás Gergely, Zsolt Mihály Szabó, Csaba Faragó and Tibor Gyimóthy, Forward computation of dynamic slices of C programs. Technical Report TR-2000-001, RDAI, 2000.
 
43
 
44
 
45
{Beszedes 2002b} Arpad Beszedes and Tibor Gyimothy, Union slices for the approximation of the precise slice, IEEE International Conference on Software Maintenance (ICSM'02), pp. 12--20, Montreal, Canada, Oct. 2002.
 
46
 
47
 
48
{Binkley 1992} David Binkley, Using semantic differencing to reduce the cost of regression testing, Proc. IEEE Conference on Software Maintenance, Washington, D. C., pp. 41--50, Nov. 1992.
49
 
50
{Binkley 1993b} David Binkley, Slicing in the presence of parameter aliasing. Proceedings of the 1993 Software Engineering Research Forum, (Orlando, FL), pp. 261--268, Nov. 1993.
51
 
52
 
53
{Binkley 1996} David Binkley and Keith Brian Gallagher, Program slicing, Advances in Computers, 43, pp. 1--50, 1996.
 
54
 
55
 
56
{Binkley 1998b} David Binkley, The application of program slicing to regression testing, Information and Software Technology, 40(11-12), pp. 583--594, 1998.
57
 
58
 
59
 
60
 
61
{Binkley 2004a} David Binkley and Mark Harman, A survey of empirical result on program slicing, Advances in Computers, 62, pp. 105--178, 2004.
 
62
 
63
64
 
65
66
 
67
 
68
{Canfora 1994a} Gerardo Canfora, Andrea De Lucia, Giuseppe A. Di Lucca and A. R. Fasolino, Slicing large programs to isolate reusable functions, Proceedings of EUROMICRO Conference, Liverpool, U.K, IEEE CS Press, pp. 140--147, 1994.
 
69
 
70
{Canfora 1998} Gerardo Canfora, Aniello Cimitile, and Andrea De Lucia. Conditioned program slicing. In Mark Harman and Keith Gallagher, editors, Information and Software Technology Special Issue on Program Slicing, volume 40, pages 595--607. Elsevier Science B.V., 1998.
 
71
72
 
73
{Chang 1994} Juei Chang and Debra J. Richardson, Static and dynamic specification slicing, Proceedings of the Fourth Irvine Software Symposium, Irvine, CA, Apr. 1994.
74
 
75
 
76
 
77
{Chen 2000} Guilin Chen, Bo Huang, Binyu Zang, and Chuanqi Zhu, Transformation of programs to remove nonlocal control flow, The Fourth International Conference on High-Performance Computing in the Asia-Pacific Region, Beijing, China, 1, pp. 14--17, May 2000.
 
78
 
79
 
80
{Chen 1999a} Zhenqiang Chen, Baowen Xu, Dependence Analysis and Static Slices of Concurrent Programs, In 5th International Conference for Young Computer Scientist (ICYCS'99), 1999.
 
81
{Chen 1999b} Zhenqiang Chen and Baowen Xu, Dependency analysis based dynamic slicing for debugging. International Software Engineering Symposium 2001 (ISES'01), Wuhan, China, pp. 398--404, 2001. Engineering and Technology (ASSET '99), IEEE CS Press, pp. 230--237, 1999.
 
82
83
 
84
85
 
86
{Chen 2001d} Zhenqiang Chen and Baowen Xu, Dependency analysis based dynamic slicing for debugging, International Software Engineering Symposium 2001 (ISES'01), Wuhan, China, pp. 398--404, 2001.
87
 
88
 
89
 
90
{Chen 2002d} Zhenqiang Chen, Baowen Xu, Hongji Yang and Jianjun Zhao, Concurrent Ada dead statements detection, Information and Software Technology, 44(13), pp. 733--741, Oct. 2002.
 
91
{Chen 2003a} Zhenqiang Chen, Baowen Xu, An approach to measurement of class cohesion based on dependence analysis, Journal of Software, 14(11), pp. 1849--1856, 2003.
 
92
{Chen 2003b} Zhenqiang Chen, Baowen Xu and Guan Jie, Test coverage analysis based on program slicing, Journal of Electronics, 20(3), pp. 232--236, 2003.
 
93
{Chen 2003c} Zhenqiang Chen, Baowen Xu, Hongji Yang, Test coverage analysis based on program slicing, Proceedings of The 2003 IEEE International Conference on Information Reuse and Integration (IRI'2003), October 27--29, 2003, Las Vegas, USA.
 
94
{Chen 2003d} Zhenqiang Chen, Baowen Xu, William Chu, Hongji Yang and Jianjun Zhao, Slicing larger programs partially, Proceedings of The 2003 International Conference on Software Engineering Research and Practice (SERP'03: June 23--26, 2003, Las Vegas, Nevada, USA)
 
95
96
 
97
{Cheng 1991} Jingde Cheng, Process dependence net: A concurrent program representation, Proceedings of JSSST 8th Conference, pp. 513--516, 1991.
 
98
99
 
100
 
101
{Cheng 2001} Jingde Cheng, Dynamic slicing of concurrent programs: Where are we and where is the right way?, Proceedings of 2001 International Conference on Parallel and Distributed Processing Techniques and Applications, Las Vegas, USA, pp. 1905--1911, Jun. 2001.
102
103
104
105
106
 
107
{Cifuentes 1993} Cristina Cifuentes, A structuring algorithm for decompilation, XIX Conference Latinoamericana de Informatica, Buenos Aires, Argentina, 2(6), pp. 267--276, Aug. 1993.
 
108
 
109
{Cimitile 1995b} Aniello Cimitile, Andrea De Lucia, and Malcolm Munro, A specification driven slicing process for identifying reusable functions, Technical Report no. 3/95, Dep. of Computer Science, University of Durham, U.K., 1995.
 
110
{Clarke 1999} Edmund M. Clarke and Masahiro Fujita and Sreeranga P. Rajan and Thomas W. Reps and Subash Shankar and Tim Teitelbaum, Program slicing of hardware description languages, Technical Report CMU-CS99 -103, Carnegie Mellon University, 1999.
 
111
112
 
113
{Cutillo 1993} F. Cutillo, Piernicola Fiore and Giuseppe Visaggio, Identification and extraction of "domain independent" components in large programs, Proceedings of the 1st Proceedings of the Working Conference on Reverse Engineering, pp. 83--92, 1993.
114
115
 
116
 
117
{Danicic 1999} Sebastian Danicic, Dataflow Minimal Slicing, PhD thesis, University of North London, UK, School of Informatics, Apr. 1999.
118
 
119
 
120
 
121
{Danicic} Sebastian Danicic, Chris Fox, Mark Harman, Robert Mark Hierons, John Howroyd, and Mike Laurence, Slicing algorithms are minimal for programs which can be expressed as linear, free, liberal schemas, ACM Transactions on Programming Languages and Systems, In revision.
 
122
{Dantzig 1973} G. Dantzig and B. C. Eaves, Fourier-motzkin elimination and its dual, Journal of Combinatorial Theory, A(14), pp. 288--297, 1973.
 
123
124
125
126
 
127
 
128
 
129
{De Lucia 2001} Andrea De Lucia, Program slicing: Methods and applications, In IEEE workshop on Source Code Analysis and Manipulation (SCAM 2001), 2001.
 
130
131
 
132
{Dhamdhere 2000} Dhananjay M. Dhamdhere, Effective execution histories for debugging and dynamic slicing, Technical Report, CSE Department, IIT Bombay, 2000.
 
133
134
 
135
{Duesterwald 1992a} Evelyn Duesterwald, Rajiv Gupta and Mary Lou Soffa, Rigorous data flow testing through output influences, Proceedings of the Second Irvine Software Symposium ISS'92 California, pp. 131--145, 1992.
 
136
 
137
{Duesterwald 1993} Evelyn Duesterwald, Rajiv Gupta and Mary Lou Soffa, Demand driven program analysis, Technical Report TR-93-15, Department of Computer Science, University of Pittsburgh, Pittsburgh, PA, Oct. 1993.
138
139
140
 
141
{Dwyer 1999a} Matthew B. Dwyer, James C. Corbett, John Hatcliff, Stefan Sokolowski and Hongjun Zheng, Slicing multi-threaded java programs: A case study, Technical Report KSU CIS TR 99-7, Department of Computing and Information Sciences, Kansas State University, 1999.
 
142
{Dwyer 1999b} Matthew Dwyer and John Hatcliff, Slicing software for model construction, Proceedings of the 1999 ACM Workshop on Partial Evaluation and Program Manipulation (PEPM'99), pp. 105--118, Jan. 1999.
143
 
144
{Ernst 1994} Michael D. Ernst, Practical fine-grained static slicing of optimized code, Technical Report MSR-TR-94-14, Microsoft Research, Redmond, WA, July 1994.
 
145
{Ernst 1995} Michael D. Ernst, Slicing pointers and procedures, Microsoft Research technical report, Redmond, WA, MSR-TR-95-23, Jan. 1995.
 
146
{Erosa 1994} Ana M. Erosa and Laurie J. Hendren, Taming control flow: a structured approach to eliminating goto statements, International Conference on Computer Languages, pp. 229--240, May 1994.
 
147
 
148
{Faragó 2001} Csaba Faragó and Tamás Gergely, Handling the unstructured statements in the forward dynamic slice algorithm. Proceedings of the 7th Symposium on Programming Languages and Software Tools (SPLST 2001), pp. 16--27, Jun. 2001.
 
149
150
151
 
152
{Field 1998} John Field and Frank Tip, Dynamic dependence in term of rewriting systems and its application to program slicing, Information and Software Technology, 40(11-12), pp. 609--636, 1998.
 
153
 
154
 
155
{Forgacsy 1997a} Istvan Forgacsy and Tibor Gyimóthy, An efficient interprocedural slicing method for large programs, Proceedings of SEKE'97, pp. 279--287, Madrid, Spain, 1997.
156
 
157
 
158
 
159
 
160
{Francel 2001} Margaret Ann Francel and Spencer Rugaber, The value of slicing while debugging, Proceedings of the 7th International Workshop on Program Comprehension, pp. 151--169, 2001.
161
 
162
 
163
{Gallagher 1991a} Keith Brian Gallagher, Using program slicing to eliminate the need for regression testing, Proceedings of 8th International Conference on Testing Computer Software, May 1991.
 
164
 
165
{Gallagher 1993} Keith Brian Gallagher and J. R. Lyle, Program slicing and software safety, Proceedings of the Eighth Annual Conference on Computer Assurance, pp. 71--80, Jun. 1993.
 
166
 
167
{Gallagher 1997} Keith Brian Gallagher and Liam O'Brien, Reducing visualization complexity using decomposition slices, Proceedings of Software Visualization Workshop, pp. 113--118, 1997.
 
168
{Gallagher 2001} Keith Brian Gallagher and Liam O'Brien, Analyzing programs via decomposition slicing: initial data and observation, Proceeding of 7th Workshop on Empirical Studies of Software Maintenance, Florence, Italy, Nov. 2001.
 
169
 
170
{Gandle 1993} M. Gandle, A. Santal, and G. Venkatesh, Slicing functional programs using collecting abstract interpretation, First Symposium on Algorithmic and Automated Debugging, Linkoping, Sweeden, 1993.
 
171
172
 
173
{Ghiya 1992} Rakesh Ghiya, Interprocedural analysis in the presence of function pointers, ACAPS Technical Memo 62, School of Computer Science, McGill University, Dec. 1992.
 
174
175
176
177
 
178
{Gopal 1991} Rajiv Gopal, Dynamic program slicing based on dependence relations, Proceedings of Conference on Software Maintenance, Sorrento, Italy, IEEE CS Press, pp. 191--200, 1991.
 
179
 
180
 
181
 
182
{Gouranton 1998} Valérie Gouranton and Daniel Le Métayer, Dynamic slicing: A generic analysis based on a natural semantics format, Technical Report 3375, INRIA, Domaine de Voluceau, Rocquencourt, BP 105, 78153 Le chesnay Cedex FRANCE, Mar. 1998.
 
183
{Gouranton 1999} Valérie Gouranton and Daniel Le Métayer, Dynamic slicing: A generic analysis based on a natural semantics format, Journal of Logic and Computation, 9(6), pp. 835--871, 1999.
184
 
185
{Gupta 1992a} Rajiv Gupta and Mary Lou Soffa, A framework for generalized slicing, Technical Report TR-92-07, University of Pittsburgh, 1992.
 
186
{Gupta 1992b} Rajiv Gupta, Mary Jean Harrold, and Mary Lou Soffa, An approach to regression testing using slicing, Proceedings of the Conference on Software Maintenance, Orlando, FL, U.S.A., IEEE CS Press, pp. 299--308, 1992.
187
188
 
189
{Gupta 1997b} Bindu S. Gupta, A critique of cohesion measures in the object-oriented paradigm, Master's thesis, Department of Computer Science, Michigan Technological University, 1997.
 
190
{Gyimóthy 1998} Tibor Gyimóthy and Jukka Paakki, Static slicing of logic programs, Proceedings of 2nd International Workshop on Automated and Algorithmic Debugging, IRISA, France, Mar. 1998.
191
192
 
193
{Hall 1995} Robert J. Hall, Automatic extraction of executable program subsets by simultaneous dynamic program slicing, Automated Software Engineering, 2(1), pp. 33--53, Mar. 1995.
 
194
{Harman 1994a} Mark Harman and Sebastian Danicic, A new approach to program slicing, 7th International Software Quality Week, San Francisco, May 1994.
 
195
{Harman 1994b} Mark Harman and Sebastian Danicic, A framework for defining equivalence preserving program simplification and its application to program slicing, Technical Report, University of North London, Project Project, Mar. 1994.
 
196
{Harman 1995a} Mark Harman, Sebastian Danicic and Yoga Sivagurunathan, Program comprehension assisted by slicing and transformation, 1st UK workshop on program comprehension, University of Durham, July 1995.
 
197
{Harman 1995b} Mark Harman and Sebastian Danicic, A simultaneous slicing theory and derived program slicer, 4th RIMS Workshop in Computing, Kyoto University, Kyoto, Japan, July 1996.
 
198
{Harman 1995c} Mark Harman, Sebastian Danicic, Barry Jones, Balasubramaniam Sivagurunathan, and Yogasundary Sivagurunathan, Pseudo variable in slicing criteria-- capturing implicit computation, 8th International Quality Week, San Francisco, May 29th - June 2nd, 1995.
 
199
{Harman 1995d} Mark Harman, Sebastian Danicic, Yoga Sivagurunathan, Bala Sivagurunathan and Barry Jones, Cohesion metrics, 8th International Software Quality Week, San Francisco CA, paper 4-T-4, May 1995.
 
200
{Harman 1995e} Mark Harman and Sebastian Danicic, Slicing programs in the presence of errors, Technical Report, University of North London, Project Project, Feb. 1995.
 
201
{Harman 1995f} Mark Harman and Sebastian Danicic, Using program slicing to simplify testing, Journal of Software Testing, Verification and Reliability, 5(3), pp. 143--162, 1995.
 
202
{Harman 1996a} Mark Harman, Sebastian Danicic, Yogasundary Sivagurunathan, and Dan Simpson, The next 700 slicing criteria, Malcolm Munro, editor, 2nd UK workshop on program comprehension, Durham University, UK, July 1996.
 
203
{Harman 1996b} Mark Harman, Dan Simpson and Sebastian Danicic, Slicing programs in the presence of errors, Formal Aspects of Computing, 8(4), 1996.
 
204
{Harman 1997a} Mark Harman, Cleaving together - program cohesion with slices, EXE, 11(8), pp. 35--42, Jan. 1997.
 
205
{Harman 1997b} Mark Harman, Margaret Okunlawon, Bala Sivagurunathan and Sebastian Danicic, Slice-based measurement of coupling, In Rachel Harrison, editor, 19th ICSE, Workshop on Process Modeling and Empirical Studies of Software Evolution, Boston, Massachusetts, USA, May 1997.
 
206
 
207
{Harman 1998a} Mark Harman and Keith Brian Gallagher, Program slicing, Information and Software Technology, 40(11-12), pp. 577--581, 1998.
 
208
 
209
 
210
{Harman 1998d} Mark Harman and Keith Brian Gallagher, editors. Special Issue on Program Slicing, Elsevier, 40, Nov. 1998.
 
211
 
212
{Harman 2000b} Mark Harman, Robert M. Hierons and Sebastian Danicic, The relationship between program dependence and mutation analysis, Mutation 2000 Workshop, San Jose, California, USA, pp. 15--23, Oct. 2000.
 
213
{Harman 2001a} Mark Harman and Rob Hierons, An overview of program slicing, Software Focus, 2(3), pp. 85--92, 2001.
 
214
 
215
 
216
 
217
 
218
 
219
 
220
 
221
222
223
 
224
225
 
226
 
227
 
228
{Hausler 1989} Prove Hausler, Denotational program slicing, Proceedings of the 22nd Hawaii International Conference on System Sciences, Hawaii, pp. 486--494, 1989.
 
229
230
231
232
 
233
234
 
235
{Hierons 1999} Robert M. Hierons, Mark Harman and Sebastian Danicic, Using program slicing to assist in the detection of equivalent mutants, Journal of Software Testing, Verification and Reliability, 9(4), pp.233--262, Dec. 1999.
 
236
{Hierons 2000} Robert M. Hierons and Mark Harman, Program analysis and test hypotheses complement, IEEE ICSE International Workshop on Automated Program Analysis, Testing and Verification, Limerick, Ireland, Jun. 2000.
 
237
{Hierons 2002} Robert Mark Hierons, Mark Harman, Chris Fox, Laheen Ouarbya and Mohammed Daoudi, Conditioned slicing supports partition testing, Software Testing, Verification and Reliability, 12(1), pp. 23--28, Mar. 2002.
238
239
240
 
241
 
242
 
243
{Hoffner 1995a} Tommy Hoffner, Mariam Kamkar and Peter Fritzson, Evaluation of program slicing tools, In 2nd International Workshop on Automated and Algorithmic Debugging, pp. 51--69, 1995.
 
244
{Hoffner 1995b} Tommy Hoffner, Evaluation and Comparison of Program Slicing Tool, Technical Report, LiTH-IDA-R-95--01, Department of Computer and Information Science, Linkping University, Sweden, 1995.
245
246
 
247
{Horwitz 1988c} Susan Horwitz, Jan Prins, and Thomas Reps, Support for integrating program variants in an environment for programming in the large, Proceedings of the International Workshop on Software Version and Conjuration Control 88, Grassau, Germany, Jan. 1988.
248
249
250
251
 
252
253
 
254
{Hwang 1988a} J. C. Hwang, M. W. Du and C. R. Chou, Finding program slices for recursive procedures, Proceedings of the 12th Annual International Computer Software and Applications Conference (Chicago, 1988).
 
255
{Hwang 1988b} J. C. Hwang, M. W. Du and C. R. Chou, The influence of language semantics on program slices, Proceedings of the 1988 International Conference on Computer Languages, Miami Beach, 1988.
 
256
 
257
{Huang 1996} H. Huang, Wei-Tek Tsai and Satish Subramanian, Generalized Program Slicing for Software Maintenance, Proceedings of Software Engineering and Knowledge Engineering, pp. 261--268, 1996.
 
258
{Huynh 1997} D. T. Huynh, Y. Song, Forward dynamic slicing in the presence of structured jump statements, Proceedings of ISACC'97, pp. 73--81, 1997.
 
259
{Ishio 2003} Takashi Ishio, Shinji Kusumoto and Katsuro Inoue, Application of aspect-oriented programming to calculation of program slice, Technical Report, ICSE2003,
 
260
{Iwaihara 1996} Mizuho Iwaihara, Masaya Nomura, Shigeru Ichinose and Hiroto Yasuura, Program slicing on vhdl descriptions and its applications, Proceedings of Asian Pacific Conference on Hardware Description Languages (APCHDL), pp. 132--139, 1996.
261
 
262
 
263
{Jackson 1994c} Daniel Jackson and Eugene J. Rollins, Abstraction mechanisms for pictorial slicing, Proceedings of the IEEE Workshop on Program Comprehension, pp. 82--88, 1994.
 
264
{Jiang 1991} J. Jiang, X. Zhou, and D. J. Robson, Program slicing for C - the problems in implementation, Proceedings of the Conference on Software Maintenance, pp. 182--190, 1991.
 
265
{Joiner 1993} J. K. Joiner and W. T. Tsai, Ripple effect analysis, program slicing, and dependence analysis, Technical Report, TR number: TR 93-84, Department of Computer Science University of Minnesta Minneapolis.
 
266
{Jones 1981} N. D. Jones and S. S. Muchnick, Flow analysis and optimization of LISP-like structures, In S. S. Muchnick and N. D. Jones, editors, Program Flow Analysis, chapter 4, pp. 102--131, Prentice-Hall, 1981.
 
267
 
268
 
269
{Kamkar 1993a} Mariam Kamkar, Interprocedural dynamic slicing with applications to debugging and testing, PhD thesis, Linkoping University, Sweden, 1993.
 
270
 
271
 
272
 
273
 
274
 
275
{Kamkar 1998} Mariam Kamkar, Application of program slicing in algorithmic debugging, Information and Software Technology, 40(11-12), pp. 635--646, Nov. 1998.
 
276
{Kang 1996} Byung-Kyoo Kang and James M. Bieman, Designlevel cohesion measures: Derivation, comparison, and applications, Colorado State University, Technical Report CS-96-104, Jan. 1996.
 
277
 
278
{Karstu 1994} Sakari Karstu, An examination of the behavior of the slice based cohesion measures, Master's thesis, Department of Computer Science, Michigan Technological University, 1994.
 
279
{Kennedy 1981} Ken Kennedy, A survey of data flow analysis techniques, Steven S. Muchnick and Neil D. Jones, editors, Program Flow analysis: Theory and Applications. Prentice-Hall, Englewood Cliffs, New Jersey, 1981.
 
280
{Kim 1994} Hyeon-Soo Kim and Yong-Rae Kwon, Restructuring programs through program slicing, International Journal of Software Engineering and Knowledge Engineering, 4(3), pp. 349--368, 1994.
 
281
{Kim 1999a} Taeho H. Kim, Yeong-Tae Song, Lawrence Chung and Dung T. Huynh, Software architecture analysis using dynamic slicing, Proceedings of AoM/IAoM CS'99, 17(2), pp. 242--247, Aug. 1999.
 
282
 
283
 
284
{Kiss 2003} Ákos Kiss, Judit Jász, Gábor Lehotai and Tibor Gymóthy, Interprocedural static slicing of binary executables, Proceedings of the 3rd IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2003), Amsterdam, The Netherlands, pp. 118--127, Sep. 2003.
285
 
286
 
287
{Korel 1988a} Bogdan Korel and Janusz Laski, STAD - a system for testing and debugging: user perspective, Proceedings of the Second Workshop on Software Testing, Verification and Analysis, pp. 13--20, July 1988.
 
288
 
289
 
290
{Korel 1992} Bogdan Korel and Roger Ferguson, Dynamic slicing of distributed programs, Applied Mathematics and Computer Science Journal, 2(2), pp. 199--215, 1992.
291
 
292
{Korel 1995} Bogdan Korel, Computation of dynamic slices for programs with arbitrary control-flow, Second International Workshop on Automated and Algorithmic Debugging, St. Malo, France, 1995.
 
293
 
294
{Korel 1997b} Bogdan Korel, Application of dynamic slicing in program debugging, Third International Workshop on Automated Debugging, pp. 59--74, 1997.
 
295
 
296
{Korel 1998a} Bogdan Korel and Jurgen Rilling, Dynamic program slicing methods, Information and Software Technology, 40(11--12), pp. 647--659, 1998.
 
297
 
298
{Kovács 1996} Gyula Kovács, Ferenc Magyar, and Tibor Gyimóthy, Static slicing of java programs, Technical Report TR-96-108, József Attila University, Hungary, 1996.
 
299
{Krinke 1998a} Jens Krinke and Gregor Snelting, Program slicing, Information and Software Technology, 40(11--12), pp. 661--676, Nov. 1998.
300
 
301
{Krinke 1998c} Jens Krinke and Gregor Snelting, Validation of measurement software as an application of slicing and constraint solving, Information and Software Technology, 40(11--12), pp. 661--675, Dec. 1998.
 
302
303
 
304
{Krinke 2003b} Jens Krinke, Barrier slicing and chopping, Proceedings of 3rd IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2003), Amsterdam, Netherlands, pp. 81--87, Sep. 2003.
 
305
 
306
 
307
 
308
{Krishnaswamy 1994} Anand Krishnaswamy, Program slicing: an application of object-oriented program dependency graphs, Technical Report, TR94-108, Department of Computer Science, Clemson University, 1994.
309
 
310
{Kumar 2001} Sumit Kumar and Susan Horwitz, Better slicing of programs with jumps and switches. Technical Report TR-1429, Computer Sciences, University of Wisconsin-Madison, 2001.
 
311
 
312
{Kuhn 1995} Bradley M. Kuhn, Dennis J. Smith and Keith B. Gallagher, The decomposition slice display system, Proceedings of the 1995. Conference on Software Engineering and Knowledge Engineering SEKE'95, Jun. 1995.
 
313
 
314
{Lakhotia 1991} Arun Lakhotia, Graph theoretic foundations of program slicing and integration, Report CACS TR-91-5-5, University of Southwestern Louisiana, 1991.
 
315
{Lakhotia 1992} Arun Lakhotia, Improved interprocedural slicing algorithm. Technical Report CACS TR-92-5-8, The Center for Advanced Computer Studies, University of Southwestern Louisian, Lafayette, LA 70504, 1992.
316
 
317
 
318
{Lakhotia 1998} Arun Lakhotia and Jean-Christophe Deprez, Restructuring programs by tucking statements into functions, Information and Software Technology, 40(11/12), pp. 677--691, 1998.
 
319
{Lakhotia 1999} Arun Lakhotia, Jean-Christophe Deprez and Shreyash S. Kame, Flow analysis models for interprocedural program slicing algorithms, Technical Report TR-99-5-1, University of Southwestern Louisiana, July 1999.
 
320
321
322
 
323
324
325
 
326
{Lange 2001} Carola Lange, Program slicing and slicing book technology, ARTI 8800, Spring 2001.
 
327
 
328
{Larus 1993} James R. Larus and Satish Chandra, Using tracing and dynamic slicing to tune compilers, Technical Report CS-TR-93-1174, University of Wisconsin-Madison, Aug. 1993.
 
329
 
330
{Laski 1991a} Janusz Laski, A data flow based algorithm for the derivation of program slices, Technical Report TR-CSE-10-1, Oakland University, 1991.
 
331
{Laski 1991b} Janusz Laski and Wojciech Szermer, Reachability slicing in software reliability studies, Technical Report TR-CSE-91-12-1, Oakland University, 1991.
 
332
 
333
 
334
{Leminen 1994} Janne A. Leminen, Slicing and slice based measures for the assessment of functional cohesion of z operation schemas, Master's thesis, Department of computer Science, Michigan Technological University, 1994.
335
 
336
 
337
 
338
{Li 2000} Bixin Li, Program slicing techniques and its application in object-oriented software metrics and software test, PhD thesis, Nanjing University, P. R. China. Dec. 2000.
 
339
{Li 2001a} Bixin Li, A hierarchical slice-based framework for object-oriented coupling measurement, Turku Centre for Computer Science, TUCS Technical Reports, No.415, Turku, Finland, July 2001.
 
340
{Li 2001b} Bixin Li and Xiaocong Fan, JATO: Slicing Java programs hierarchically, TUCS Technical Report, No 416, Turku, Finland, 2001.
341
 
342
{Li 2003a} Bixin Li, Managing dependencies in component-based systems based on matrix model, Proceedings Of Net.Object.Days 2003, pp. 22--25, Sept. 2003.
 
343
{Li 2003b} Bixin Li, A technique to analyze information-flow in object-oriented programs, Information and Software Technology, Elsevier science, 45(6), pp. 305--314, 2003.
 
344
{Li 2004a} Bixin Li, SSA: A core algorithm to slice programs, to appear in International Journal of Information and Computational Science (JOICS), Binary Information Press, USA, 2004.
 
345
 
346
{Li 2004c} Bixin Li and Ying Zhou, Measuring and validating a kind of object-oriented software coupling, to appear in Proceedings of Info2004, Tokyo, Japan.
 
347
 
348
 
349
350
351
352
 
353
354
355
 
356
{Livadas 1992a} Panos E. Livadas and Stephen Croll, Program slicing, Technical Report SERC-TR-61-F, Computer Science and Information Services Department, University of Florida, Gainesville, FL, Oct. 1992.
 
357
{Livadas 1992b} Panos E. Livadas and Prabal K. Roy, Program dependence analysis, Proceedings of the International Conference on Software Maintenance, IEEE Computer Society Press, pp. 356--365, 1992.
 
358
{Livadas 1993a} Panos E. Livadas and Scott D. Alden, A toolset for program understanding, Proceedings of the IEEE Second Workshop on Program Comprehension, 1993.
 
359
{Livadas 1993b} Panos E. Livadas and Stephen Croll, System dependence graph construction for recursive programs, Proceedings of the Seventeenth International Computer Software and Applications Conference, pp. 414--420, Nov. 1993.
 
360
 
361
 
362
{Livadas 1994c} Panos E. Livadas and Adam Rosenstein, Slicing in the presence of pointer variables, Technical Report SERC-TR-74-F, Computer Science and Information Services Department, University of Florida, Gainesville, FL, June 1994.
 
363
{Livadas 1995} Panos E. Livadas and Theodore Johnson, An optimal algorithm for the construction of the system dependence graph, Technical report, Computer and Information Sciences Department, University of Florida, 1995.
 
364
 
365
{Longworth 1985} Herbert D. Longworth, Slice-based program metrics, Master's thesis, Michigan Technological University, 1985.
 
366
{Longworth 1986} Herbert D. Longworth, Linda M. Ott, and M. R. Smith, The relationship between program complexity and slice complexity during debugging tasks, COMPSAC 86, 1986.
 
367
{Lu 1988} Lu Qi, Zhang Fubo, and Qian Jiahua, Program slicing, Journal of Computer Science and Technology, 3(1), pp. 29--39, 1988.
 
368
 
369
 
370
{Lyle 1987} James R. Lyle and Mark Weiser, Automatic program bug location by program slicing, Proceedings of 2nd International Conference on Computers and Applications, Peking, China, pp. 877--882, 1987.
 
371
{Lyle 1993} James R. Lyle and David Binkley, Program slicing in the presence of pointers, Proceedings of the Third Annual Software Engineering Research Forum, Orlando, FL, Nov. 1993.
 
372
{Lyle 1995} James R. Lyle, Dolores R. Wallace, James R. Graham, Keith B. Gallagher, Joseph P. Poole, and David W. Binkley, A CASE tool to evaluate functional diversity in high integrity software, IR-5691. U.S. Department of Commerce, Technology Administration, National Institute of Standards and Technology, Computer Systems Laboratory, Gaithersburg, MD, 1995.
373
374
375
 
376
{Meyers 2004a} Timothy M. Meyers, David Binkley, A Longitudinal and Comparative Study of Slice-Based Metrics, Proceedings of the 10th International Software Metrics Symposium, Chicago, USA, pp. 14--16, Sep. 2004.
 
377
 
378
379
 
380
{Millett 1998} Lynette I. Millett and Tim Teitelbaum, Slicing promela and its applications to model checking, Proceedings of the 4th International SPIN Workshop, 1998
 
381
{Millett 2000} Lynette I. Millett and Tim Teitelbaum, Issues in slicing promela and its applications to model checking, protocol understanding, and simulation, International Journal on Software Tools for Technology Transfer, 2(4), pp. 343--349, 2000.
 
382
 
383
384
385
 
386
387
 
388
 
389
{Mund 2002} G. B. Mund, Rajib Mall and Sudeshna Sarkar, An efficient dynamic program slicing technique, Information and Software Technology, 44(2), pp. 123--132, Feb. 2002.
 
390
{Mund 2003} G. B. Mund, Rajib Mall and Sudeshna Sarkar, Computation of intraprocedural dynamic program slices, Information and Software Technology, 45(8), pp. 499--512, Jun. 2003.
391
392
393
394
395
396
 
397
{Oda 1993} Tomohiro Oda and Keijiro Araki, Specification slicing in formal methods of software development, Proceedings of the 17th Annual International Computer Software and Applications Conference, pp. 313--319, Nov. 1993.
 
398
 
399
 
400
 
401
{Orso 2003} Alessandro Orso, Saurabh Sinha and Mary Jean Harrold, Understanding data dependences in the presence of pointers, Technical Report GIT-CERCS-03-10, College of Computing, Georgia Institute of Technology, Atlanta, Ga., May 2003.
402
403
404
 
405
{Ott 1992a} Linda M. Ott and James M. Bieman, Effects of software changes on module cohesion, Proceedings of the Conference on Software Maintenance-1992, pp. 345--353, Nov. 1992.
 
406
{Ott 1992b} Linda M. Ott, Using slice profiles and metrics during software maintenance, Proceedings of the 10th Annual Software Reliability Symposium, pp. 16--23, 1992.
 
407
{Ott 1993} Linda M. Ott and Jeffrey J. Thuss, Slice based metrics for estimating coliesion, Proceedings of the IEEE-CS International Metrics Symposium, pp. 78--81, 1993.
 
408
{Ott 1995} Linda Ott, James M. Bieman, Byung-Kyoo Kang and Bindu Mehra, Developing measures of class cohesion for object-oriented software, Proceeding of 7th Annual Oregon Workshop on Software Metrics (AOWSM'95), Jun. 1995.
 
409
{Ott 1998} Linda M. Ott and James M. Bieman, Program slices as an abstraction for cohesion measurement, Information and Software Technology, 40(11--12), pp. 691--700, Nov. 1998.
 
410
411
 
412
413
 
414
{Pratt 1977} V. R. Pratt, Two easy theories whose combination is hard, Technical Report, Mass Institute of Technology, Sep. 1977.
415
 
416
{Qi 2004} Xiaofang Qi and Baowen Xu, Dependence Analysis of Concurrent Programs Based on Reachability Graph and Its Applications, International Conference on Computational Science, pp. 405--408, 2004.
417
 
418
{Ranganath 2004} Venkatesh Prasad Ranganath and John Hatcliff, Pruning interference and ready dependence for slicing concurrent Java programs, Proceedings of 13th International Conference on Compiler Construction (CC 2004), pp. 9--56, 2004.
 
419
{Reps 1988a} Thomas Reps and Wuu Yang, The semantics of program slicing, Technical Report 777, University of Wisconsin - Madison, Jun. 1988.
 
420
 
421
422
 
423
{Reps 1993} Tomas Reps, The Wisconsin program-integration system reference manual: Release 2.0, Technical Report Unpublished report University of Wisconsin, Madison, WI, July 1993.
 
424
{Reps 1994a} Thomas Reps. Demand interprocedural program analysis using logic databases, Kluwer Academic Publishers, pp. 163--196, 1994.
 
425
426
 
427
{Reps 1994d} Tomas Reps, Mooly Sagiv and Susan Horwitz, Interprocedural dataflow analysis via graph reachability, Report DIKU TR 94-14, University of Copenhagen, Copenhagen, 1994
428
429
 
430
{Reps 1996a} Thomas Reps, On the sequential nature of interprocedural program-analysis problems, Acta Informatica 33(8), pp. 739--757, 1996.
 
431
 
432
{Reps1998} Thomas Reps, Program analysis via graph reachability, Information and Software Technology, 40(11--12), pp. 701--726, Nov. 1998.
 
433
 
434
435
 
436
 
437
{Rilling 2001} Juergen Rilling and Bhaskar Karanth, A hybrid program slicing framework, IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'01), Florence, Italy, Nov. 2001.
 
438
 
439
440
 
441
442
 
443
444
 
445
446
447
 
448
{Russell 2001} Jeff Russell, Program slicing literature survey, Seminar and Draft Materials, University of Texas at Austin, 2001, http://www.ece.utexas.edu/~jrussell/seminar/slicing_survey.pdf.
449
450
451
 
452
{Schoenig 1995} Stéphane Schoenig and Mireille Ducassé, A hybrid backward slicing algorithm producing executable slices for Prolog, Proceedings of the 7th Workshop on Logic Programming Environments, pp. 41--48, Dec. 1995.
 
453
 
454
{Shahmehri 1991} Nahid Shahmehri, Generalized algorithmic debugging, PhD thesis, Linkoping University, 1991.
 
455
456
 
457
 
458
 
459
{Shimomura 1992} Takao Shimomura, The program slicing technique and its application to testing, debugging and maintenance, Journal of IPS of Japan, 9(9), pp. 1078--1086, Sep. 1992.
460
461
462
 
463
{Sivagurunatha 1997} Yoga Sivagurunathan, Mark Harman, and Sebastian Danicic, Slicing, I/O and the implicit state, Mariam Kamkar, editor, 3rd International Workshop on Automated Debugging (AADEBUG'97), Sweden, May 1997.
 
464
465
 
466
 
467
{Snelting 2003} Gregor Snelting, Torsten Robschink, and Jens Krinke, Efficient path conditions in dependence graphs for software safety analysis, Submitted for publication, 2003.
 
468
{Song 1998} Yeong-Tae Song and Dung T. Huynh, Forward dynamic interprocedural program slicing, Proceedings of the 1998 conference on CS & I '98, Research Triangle Park, NC, Oct. 1998.
 
469
 
470
 
471
 
472
473
 
474
 
475
 
476
 
477
 
478
{Steindl 1999b} Christoph Steindl, Program slicing for object-oriented programming languages, PhD thesis, Johannes Kepler University Linz, 1999.
479
480
 
481
 
482
 
483
{Thuss 1988} Jeffrey J. Thuss, An investigation into slice-based cohesion metrics, Master's thesis, Michigan Technological University, 1988.
484
 
485
 
486
{Tip 1995a} Frank Tip, A survey of program slicing techniques, Journal of Programming Languages, 3(3), pp. 121--189, Sep. 1995.
 
487
{Tip 1995b} Frank Tip, Generation of Program Analysis Tools, PhD thesis, Centrum voor Wiskunde en Informatica, Amsterdam, 1995.
488
489
490
 
491
{Tonella 2003} Paolo Tonella, Using a concept lattice of decomposition slices for program understanding and impact analysis, IEEE Transactions on Software Engineering, 29(6), pp. 495--509, Jun. 2003.
 
492
{Triolet 1985} R. Triolet, Interprocedural analysis for program restructuring with parafrase, Technical Report, CSRD Rep, No.538, University of Illinois Urbana-Champaign, Dec. 1985.
 
493
{Umemori 2003} Fumiaki Umemori, Kenji Konda, Reishi Yokomori and Katsuro Inoue, Design and implementation of bytecode-based Java slicing system, Third IEEE International Workshop on Source Code Analysis and Manipulation, Amsterdam, The Netherlands, p. 108, Sep. 2003.
 
494
{Vasconelos 1994} Wamberto Weber Vasconcelos, A method of extracting Prolog programming techniques, Technical Paper 27, DAI, Edinburgh Univ., 1994.
 
495
{Vasconcelos 1995} Wamberto Weber Vasconcelos, Extracting, organizing, designing and reusing Prolog programming techniques, PhD thesis, DAI, Edinburgh Univ., Aug. 1995.
 
496
{Vasconcelos 1998a} Wamberto Weber Vasconcelos and M. A. T. Aragão, Slicing logic programs, Technical Report, 1998.
 
497
 
498
 
499
{Venkatesh 1991} G. A. Venkatesh, The semantic approach to program slicing, Proceedings of the ACM Transactions on Programming Languages and Systems, 13(2), pp. 181--210, 1991.
500
 
501
{Vidal 2002} Germán Vidal, Forward Slicing of Multi-paradigm Declarative Programs Based on Partial Evaluation, LOPSTR 2002, pp. 219--237, 2002.
 
502
503
504
 
505
 
506
507
 
508
{Weiser 1983} Mark Weiser, Reconstructing sequential behavior from parallel behavior projections, Information Processing Letters 17(3), pp. 129--135, 1983.
 
509
{Weiser 1984} Mark Weiser, Program slicing, IEEE Transactions on Software Engineering, 10(4), pp. 352--357, 1984.
 
510
 
511
{Weiser 1998} Mark Weiser, Foreword to special issue on program slicing, Information and Software Technology, 40(11--12), pp. 575--576, Nov. 1998.
 
512
 
513
{Williams 1977} M. Howard Williams, Generating structured flow diagrams: the nature of unstructuredness, The Computer Journal, 20(1), pp. 45--50, 1977.
 
514
{Williams 1978} M. H. Williams and H. L. Ossher, Conversion of unstructured flow diagrams to structured, The Computer Journal, 21(2), pp. 161--167, 1978.
515
 
516
 
517
{Woodward 1998} M. R. Woodward and S. P. Allen, Slicing algebraic specifications, Information and Software Technology, ISSN: 0950--5849, 40(2), pp. 105--118, May 1998.
 
518
519
 
520
 
521
{Xu 1993} Baowen Xu, Reverse program flow dependency analysis and applications, Chinese Journal of Computers, 16(5), pp. 385--392, 1993.
 
522
{Xu 2001a} Baowen Xu, Zhenqiang Chen and Xiaoyu Zhou, Slicing object-oriented Ada95 programs based on dependence analysis, Journal of Software, 12, pp. 208--213, 2001 (in Chinese with English abstract).
523
 
524
525
 
526
 
527
{Yang 1997} Hong Yang and Baowen Xu, Design and implementation of a PSS/ADA program slicing system, Chinese Journal of Computer Research and Development, 34(3), pp. 217--222, 1997.
528
529
 
530
{Zhang 1999} Lujun Zhang, Baowen Xu and Xiaoyu Zhou, Analysis and slicing of Ada95, In 5th International Conference for Young Computer Scientist (ICYCS'99), pp. 189--193, 1999.
 
531
 
532
 
533
534
 
535
{Zhang 2004b} Xiangyu Zhang and Rajiv Gupta, Recovering dynamic dependence graphs, Technical Report TR04-01, University of Arizona, Department of Computer Science, Tucson, AZ, 2004.
 
536
 
537
 
538
{Zhang 2004e} Yingzhou Zhang, Baowen Xu, Ju Qian, Modular monadic slicing of concurrent programs, The 8th IASTED International Conference on Software Engineering and Applications (SEA 2004), Nov. 2004.
 
539
 
540
{Zhao 1998a} Jianjun Zhao, Applying program dependence analysis to Java software, Proceedings of Workshop on Software Engineering and Database Systems, pp. 162--169, 1998.
 
541
 
542
{Zhao 1998c} Jianjun Zhao, Applying slicing technique to software architectures, Proceedings of the Fourth IEEE International Conference on Engineering of Complex Computer Systems, pp. 87--98, Aug. 1998.
 
543
{Zhao 1998d} Jianjun Zhao, Dynamic slicing of object-oriented programs Technical Report SE-98-119, Information Processing Society of Japan (IPSJ), pp. 17--23, May 1998.
 
544
 
545
 
546
 
547
 
548
 
549
{Zhao 2003a} Jianjun Zhao and Martin Rinard, System dependence graph construction for aspect-oriented programs, MIT-LCSTR-891, Laboratory for Computer Science, MIT, Mar. 2003.
 
550
{Zhao 2003b} Jianjun Zhao, Cunwei Lu and Baowen Xu, A toolkit for Java bytecode analysis, Proceedings of the Seventh IASTED International Conference on Software Engineering and Applications, Nov. 2003, Marina del Rey, CA, USA, v 7, 2003, pp. 482--487.
 
551
{Zhao 2004a} Jianjun Zhao and Baowen Xu, Measuring aspect cohesion, Proceedings of The 2004 European Joint Conferences on Theory and Practice of Software (ETAPS2004), March 27 - April 4, 2004, Barcelona, Spain, Lecture Notes in Computer Science 2984 Springer 2004, pp. 54--68.
 
552
{Zhao 2004b} Jianjun Zhao and Bixin Li, Dependence-based representation for concurrent Java programs and its application to slicing, to appear in Proceedings of ISFST2004, Xian, China.
 
553
 
554

CITED BY  13

Collaborative Colleagues:
Baowen Xu: colleagues
Ju Qian: colleagues
Xiaofang Zhang: colleagues
Zhongqiang Wu: colleagues
Lin Chen: colleagues