A vocabulary of program slicing-based techniques

This article surveys previous work on program slicing-based techniques. For each technique, we describe its features, its main applications, and a common example of slicing using such a technique. After discussing each technique separately, all of them are compared in order to clarify and establish the relations between them. This comparison gives rise to a classification of techniques which can help to guide future research directions in this field.

[1]  M. Harman,et al.  Program Slicing Using Functional Networks , 2022 .

[2]  Andrea De Lucia,et al.  Program slicing: methods and applications , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[3]  Robert J. Hall Automatic extraction of executable program subsets by simultaneous dynamic program slicing , 2004, Automated Software Engineering.

[4]  Arun Lakhotia Rule-based approach to computing module cohesion , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[5]  Jianhua Shao,et al.  Program slicing in the presence of database state , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

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

[7]  共立出版株式会社 コンピュータ・サイエンス : ACM computing surveys , 1978 .

[8]  Mark Harman,et al.  Unions of slices are not slices , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[9]  David Eichmann,et al.  Program and interface slicing for reverse engineering , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[10]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[11]  Baowen Xu,et al.  A brief survey of program slicing , 2005, SOEN.

[12]  Neil D. Jones,et al.  An introduction to partial evaluation , 1996, CSUR.

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

[14]  Jens Krinke,et al.  Barrier slicing and chopping , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

[15]  Martin P. Ward Program slicing via FermaT transformations , 2002, Proceedings 26th Annual International Computer Software and Applications.

[16]  Mark Harman,et al.  Backward conditioning: a new program specialisation technique and its application to program comprehension , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[17]  Mark Harman,et al.  An overview of program slicing , 2001, Softw. Focus.

[18]  James Cheney,et al.  Program Slicing and Data Provenance , 2007, IEEE Data Eng. Bull..

[19]  Tok Wang Ling,et al.  Correct Program Slicing of Database Operations , 1998, IEEE Softw..

[20]  Mark Harman,et al.  Pre/post conditioned slicing , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[21]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[22]  Bernard Carré,et al.  Information-flow and data-flow analysis of while-programs , 1985, TOPL.

[23]  Mangala Gowri Nanda,et al.  Slicing concurrent programs , 2000, ISSTA '00.

[24]  Mark Harman,et al.  Program Slicing using Functional Networks(Concurrency Theory and Applications '96) , 1997 .

[25]  Mark Harman,et al.  The next 700 slicing criteria , 1996 .

[26]  Roberto Giacobazzi,et al.  Non-Standard Semantics for Program Slicing , 2003, High. Order Symb. Comput..

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

[28]  Leon Moonen,et al.  Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation , 2006 .

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

[30]  Tibor Gyimóthy,et al.  An efficient relevant slicing method for debugging , 1999, ESEC/FSE-7.

[31]  Markus Müller-Olm,et al.  On optimal slicing of parallel programs , 2001, STOC '01.

[32]  Jon Beck Interface slicing: a static program analysis tool for software engineering , 1993 .

[33]  Mark David Weiser,et al.  Program slices: formal, psychological, and practical investigations of an automatic program abstraction method , 1979 .

[34]  Mark Harman,et al.  A formalisation of the relationship between forms of program slicing , 2006, Sci. Comput. Program..

[35]  Rajiv Gupta,et al.  Hybrid slicing: an approach for refining static slices using dynamic information , 1995, SIGSOFT FSE.

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

[37]  Jingde Cheng,et al.  Slicing Concurrent Programs - A Graph-Theoretical Approach , 1993, AADEBUG.

[38]  Colin Runciman,et al.  Tracing Lazy Functional Computations Using Redex Trails , 1997, PLILP.

[39]  Thomas W. Reps,et al.  Precise interprocedural chopping , 1995, SIGSOFT FSE.

[40]  David Eichmann,et al.  Program and interface slicing for reverse engineering , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[41]  Martin P. Ward Slicing the SCAM mug: a case study in semantic slicing , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

[42]  Christian Hammer,et al.  An Evaluation of Slicing Algorithms for Concurrent Programs , 2007 .

[43]  Mark Harman,et al.  Static Program Slicing Algorithms are Minimal for Free Liberal Program Schemas , 2005, Comput. J..

[44]  Manu Sridharan,et al.  Thin slicing , 2007, PLDI '07.

[45]  Jianjun Zhao,et al.  Slicing aspect-oriented software , 2002, Proceedings 10th International Workshop on Program Comprehension.

[46]  Keith Gallagher Some notes on interprocedural program slicing , 2004 .

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

[48]  Katsuro Inoue,et al.  Dependence-cache slicing: a program slicing method using lightweight dynamic information , 2002, Proceedings 10th International Workshop on Program Comprehension.

[49]  Alessandro Orso,et al.  Effects of pointers on data dependences , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[50]  Hussein Zedan,et al.  Slicing as a program transformation , 2007, TOPL.

[51]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

[52]  Wojtek Kozaczynski,et al.  Automated support for legacy code understanding , 1994, CACM.

[53]  Jens Krinke,et al.  Static slicing of threaded programs , 1998, PASTE '98.

[54]  Mark Harman,et al.  Stop-List Slicing , 2006, 2006 Sixth IEEE International Workshop on Source Code Analysis and Manipulation.

[55]  Jens Krinke,et al.  Slicing, Chopping, and Path Conditions with Barriers , 2004, Software Quality Journal.

[56]  Matthew B. Dwyer,et al.  Slicing Software for Model Construction , 2000, High. Order Symb. Comput..

[57]  Sheila A. Greibach,et al.  Theory of Program Structures: Schemes, Semantics, Verification , 1976, Lecture Notes in Computer Science.

[58]  Mark Harman,et al.  Theoretical foundations of dynamic program slicing , 2006, Theor. Comput. Sci..

[59]  Hiralal Agrawal,et al.  Towards automatic debugging of computer programs , 1992 .

[60]  Alessandro Orso,et al.  Incremental slicing based on data-dependences types , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[61]  David A. Padua,et al.  Dependence graphs and compiler optimizations , 1981, POPL '81.

[62]  Thomas W. Reps,et al.  Illustrating interference in interfering versions of programs , 1989, SCM.

[63]  Rupak Majumdar,et al.  Path slicing , 2005, PLDI '05.

[64]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

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

[66]  Joseph Robert Horgan,et al.  Incremental regression testing , 1993, 1993 Conference on Software Maintenance.

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

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

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

[70]  Insup Lee,et al.  Abstract slicing: a new approach to program slicing based on abstract interpretation and model checking , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

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

[72]  Dennis Giffhorn,et al.  An Evaluation of Slicing Algorithms for Concurrent Programs , 2007, Seventh IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2007).

[73]  Mark Harman,et al.  A survey of empirical results on program slicing , 2004, Adv. Comput..

[74]  Keith Brian Gallagher Some notes on interprocedural program slicing , 2004, Source Code Analysis and Manipulation, Fourth IEEE International Workshop on.

[75]  Shinji Kusumoto,et al.  Call-mark slicing: an efficient and economical way of reducing slice , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[76]  Jens Krinke,et al.  Context-sensitive slicing of concurrent programs , 2003, ESEC/FSE-11.

[77]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

[78]  Mark Harman,et al.  Formalizing executable dynamic and forward slicing , 2004, Source Code Analysis and Manipulation, Fourth IEEE International Workshop on.

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

[80]  Mark Harman,et al.  Slicing, I/O and the Implicit State , 1997, AADEBUG.