An overview of program slicing

MARK HARMAN and ROBERT HIERONS review three semantic paradigms for slicing — static, dynamic and conditioned; and two syntactic paradigms — syntax-preserving and amorphous. Slicing has been applied to many software development problems including testing, reuse, maintenance and evolution. This paper describes the main forms of program slice and some of the applications to which slicing has been put. Copyright © 2001 John Wiley & Sons, Ltd.

[1]  Masato Takeichi,et al.  FUNCTIONAL AND LOGIC PROGRAMMING: Second Fuji International Workshop , 1997 .

[2]  Mark Harman,et al.  A Parallel Algorithm for Static Program Slicing , 1995, Inf. Process. Lett..

[3]  Mark Harman,et al.  Amorphous program slicing , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[4]  G. A. Venkatesh,et al.  The semantic approach to program slicing , 1991, PLDI '91.

[5]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[6]  Mark Harman,et al.  An empirical study of amorphous slicing as a program comprehension support tool , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[7]  Daniel Jackson,et al.  Chopping: A Generalization of Slicing , 1994 .

[8]  R. M. Hierons,et al.  Program Analysis and Test Hypotheses Complement , 2000 .

[9]  Christoph Steindl Intermodular Slicing of Object-Oriented Programs , 1998, ECOOP Workshops.

[10]  Aniello Cimitile,et al.  A Specification Driven Slicing Process for Identifying Reusable Functions , 1996, J. Softw. Maintenance Res. Pract..

[11]  Martin R. Woodward,et al.  Slicing algebraic specifications , 1998, Inf. Softw. Technol..

[12]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[13]  Taisook Han,et al.  Static Slicing of First-Order Functional Language based on Operational Semantics , 2000 .

[14]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[15]  Mark Harman,et al.  The relationship between program dependence and mutation analysis , 2001 .

[16]  Keith Gallagher,et al.  Special Issue on Program Slicing , 1998 .

[17]  Mark Harman,et al.  ConSIT: a conditioned program slicer , 2000, Proceedings 2000 International Conference on Software Maintenance.

[18]  Mary Jean Harrold,et al.  Slicing object-oriented software , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[19]  Aniello Cimitile,et al.  Conditioned program slicing , 1998, Inf. Softw. Technol..

[20]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[21]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[22]  Frank Tip,et al.  Parametric program slicing , 1995, POPL '95.

[23]  Gabriella Kókai,et al.  GIDTS: a graphical programming environment for Prolog , 1999, PASTE '99.

[24]  T. Y. Chen,et al.  Dynamic program dicing , 1993, 1993 Conference on Software Maintenance.

[25]  Mireille Ducassé,et al.  A Backward Slicing Algorithm for Prolog , 1996, SAS.

[26]  Mark Harman,et al.  Using program slicing to assist in the detection of equivalent mutants , 1999, Softw. Test. Verification Reliab..

[27]  Jingde Cheng,et al.  Slicing Concurrent Logic Programs , 1997 .

[28]  Andrea De Lucia,et al.  Understanding function behaviors through program slicing , 1996, WPC '96. 4th Workshop on Program Comprehension.

[29]  Jong-Deok Choi,et al.  Slicing class hierarchies in C++ , 1996, OOPSLA '96.

[30]  Aniello Cimitile,et al.  Software salvaging based on conditions , 1994, Proceedings 1994 International Conference on Software Maintenance.

[31]  James M. Bieman,et al.  Program slices as an abstraction for cohesion measurement , 1998, Inf. Softw. Technol..

[32]  Matthias Felleisen,et al.  The semantics of program dependence , 1989, PLDI '89.

[33]  Bogdan Korel,et al.  Dynamic program slicing methods , 1998, Inf. Softw. Technol..

[34]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[35]  Arun Lakhotia,et al.  Restructuring programs by tucking statements into functions , 1998, Inf. Softw. Technol..

[36]  Mark Weiser,et al.  Experiments on slicing-based debugging aids , 1986 .