[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

A vocabulary of program slicing-based techniques

Published: 14 June 2012 Publication History

Abstract

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.

References

[1]
Agrawal, H. 1991. Towards automatic debugging of computer programs. Tech. rep. Ph.D. dissertation, Purdue University, Indiana.
[2]
Agrawal, H. and Horgan, J. R. 1990. Dynamic program slicing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 246--256.
[3]
Agrawal, H., Horgan, J. R., Krauser, E. W., and London, S. 1993. Incremental regression testing. In Proceedings of the Conference on Software Maintenance. IEEE Computer Society, 348--357.
[4]
Beck, J. 1993. Interface slicing: A static program analysis tool for software engineering. Ph.D. dissertation, Morgantown, WV.
[5]
Beck, J. and Eichmann, D. 1993. Program and interface slicing for reverse engineering. In Proceedings of the 15th International Conference on Software Engineering. IEEE Computer Society Press, 509--519.
[6]
Bergeretti, J. and Carré, B. 1985. Information-flow and data-flow analysis of While-programs. ACM Trans. Program. Lang. Syst. 7, 1, 37--61.
[7]
Beszédes, Á., Faragó, C., Szabó, Z. M., Csirik, J., and Gyimóthy, T. 2002. Union slices for program maintenance. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society, 12--21.
[8]
Binkley, D., Danicic, S., Gyimóthy, T., Harman, M., Kiss, Á., and Korel, B. 2006a. A formalization of the relationship between forms of program slicing. Sci. Comput. Program. 62, 3, 228--252.
[9]
Binkley, D., Danicic, S., Gyimóthy, T., Harman, M., Kiss, A., and Korel, B. 2006b. Theoretical foundations of dynamic program slicing. Theoretical Computer Science 360, 1, 23--41.
[10]
Binkley, D., Danicic, S., Gyimothy, T., Harman, M., Kiss, A., and Ouarbya, L. 2004. Formalizing executable dynamic and forward slicing. In Proceedings of the 4th IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society, 43--52.
[11]
Binkley, D. and Gallagher, K. B. 1996. Program slicing. Adv. Comput. 43, 1--50.
[12]
Binkley, D. and Harman, M. 2004. A survey of empirical results on program slicing. Adv. Comput. 62, 105--178.
[13]
Canfora, G., Cimitile, A., and De Lucia, A. 1998. Conditioned program slicing. Inform. Softw. Technol. 40, 11--12, 595--608.
[14]
Canfora, G., Cimitile, A., De Lucia, A., and Lucca, G. A. D. 1994. Software salvaging based on conditions. In Proceedings of the International Conference on Software Maintenance. 424--433.
[15]
Chen, T. Y. and Cheung, Y. Y. 1993. Dynamic program dicing. In Proceedings of the International Conference on Software Maintenance. 378--385.
[16]
Cheney, J. 2007. Program slicing and data provenance. IEEE Data Engineer. Bullet. 30, 4, 22--28.
[17]
Cheng, J. 1993. Slicing concurrent programs—A graph-theoretical approach. In Proceedings of the International Workshop on Automated and Algorithmic Debugging. 223--240.
[18]
Danicic, S., Fox, C., Harman, M., Hierons, R., Howroyd, J., and Laurence, M. 2005. Static program slicing algorithms are minimal for free liberal program schemas. Comput. J. 48, 6, 737--748.
[19]
Danicic, S. and Harman, M. 1996. Program slicing using functional networks. In Proceedings of the 2nd U.K. Workshop on Program Comprehension. 54--65.
[20]
De Lucia, A. 2001. Program slicing: Methods and applications. In Proceedings of the 1st IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society Press, Los Alamitos, California, 142--149.
[21]
De Lucia, A., Fasolino, A. R., and Munro, M. 1996. Understanding function behaviors through program slicing. In Proceedings of the 4th Workshop on Program Comprehension, A. Cimitile and H. A. Müller, Eds. IEEE Computer Society Press, 9--18.
[22]
De Lucia, A., Harman, M., Hierons, R. M., and Krinke, J. 2003. Unions of slices are not slices. In Proceedings of the 7th European Conference on Software Maintenance and Reengineering. IEEE Computer Society, 363--367.
[23]
Dwyer, M. and Hatcliff, J. 1999. Slicing software for model construction. In Proceedings of the Symposium on Partial Evaluation and Semantic-Based Program Manipulation. 105--118.
[24]
Ferrante, J., Ottenstein, K., and Warren, J. 1987. The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9, 3, 319--349.
[25]
Field, J., Ramalingam, G., and Tip, F. 1995. Parametric program slicing. In Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM Press, 379--392.
[26]
Fox, C., Harman, M., Hierons, R., and Danicic, S. 2001. Backward conditioning: A new program specialization technique and its application to program comprehension. In Proceedings of the 9th IEEE International Workshop on Program Comprehension. 89--97.
[27]
Gallagher, K., Binkley, D., and Harman, M. 2006. Stop-list slicing. In Proceedings of the 6th IEEE International Workshop on Source Code Analysis and Manipulation. 11--20.
[28]
Gallagher, K. and Lyle, J. 1991. Using program slicing in software maintenance. IEEE Trans. Softw. Engin. 17, 8, 751--761.
[29]
Gallagher, K. B. 2004. Some notes on interprocedural program slicing. In Proceedings of the IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society, 36--42.
[30]
Gaucher, F. 2003. Slicing Lustre programs. Tech. rep., VERIMAG, Grenoble.
[31]
Giacobazzi, R. and Mastroeni, I. 2003. Non-standard semantics for program slicing. Higher Order Symbol. Comput. 16, 4, 297--339.
[32]
Giffhorn, D. and Hammer, C. 2007. An evaluation of slicing algorithms for concurrent programs. In Proceedings of the 7th IEEE International Working Conference on Source Code Analysis and Manipulation. IEEE Computer Society, 17--26.
[33]
Greibach, S. 1985. Theory of Program Structures: Schemes, Semantics, Verification. Springer-Verlag New York, Inc., Secaucus, NJ.
[34]
Gupta, R. and Soffa, M. 1995. Hybrid slicing: An approach for refining static slices using dynamic information. In Proceedings of the 3rd ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM Press, 29--40.
[35]
Gyimóthy, T., Beszédes, Á., and Forgács, I. 1999. An efficient relevant slicing method for debugging. In Proceedings of the 7th European Software Engineering Conference. Springer-Verlag, 303--321.
[36]
Hall, R. 1995. Automatic extraction of executable program subsets by simultaneous dynamic program slicing. Auto. Softw. Engin. 2, 1, 33--53.
[37]
Harman, M. and Danicic, S. 1997. Amorphous program slicing. In Proceedings of the 5th International Workshop on Program Comprehension. IEEE Computer Society Press, 70--79.
[38]
Harman, M., Danicic, S., Sivagurunathan, Y., and Simpson, D. 1996. The next 700 slicing criteria. In Proceedings of the 2nd U.K. Workshop on Program Comprehension.
[39]
Harman, M. and Gallagher, K. 1998. Program slicing. Inform. Softw. Technol. 40, 11--12, 577--582.
[40]
Harman, M. and Hierons, R. 2001. An overview of program slicing. Softw. Focus 2, 3, 85--92.
[41]
Harman, M., Hierons, R. M., Fox, C., Danicic, S., and Howroyd, J. 2001. Pre/postconditioned slicing. In Proceedings of the International Conference on Software Maintenance. 138--147.
[42]
Hong, H., Lee, I., and Sokolsky, O. 2005. Abstract slicing: A new approach to program slicing based on abstract interpretation and model checking. In Proceedings of the 5th IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society, 25--34.
[43]
Horwitz, S., Reps, T., and Binkley, D. 1988. Interprocedural slicing using dependence graphs. In Proceedings of the Conference on Programming Language Design and Implementation, ACM SIGPLAN, 23, 7, 35--46.
[44]
Jackson, D. and Rollins, E. 1994. Chopping: A generalization of slicing. Tech. rep. CS-94-169, Carnegie Mellon University, School of Computer Science.
[45]
Jhala, R. and Majumdar, R. 2005. Path slicing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM Press, New York, NY, 38--47.
[46]
Jones, N. 1996. An introduction to partial evaluation. ACM Comput. Surv. 28, 3, 480--503.
[47]
Korel, B. and Laski, J. 1988. Dynamic program slicing. Inform. Process. Letters 29, 3, 155--163.
[48]
Krinke, J. 1998. Static slicing of threaded programs. SIGPLAN Notices 33, 7, 35--42.
[49]
Krinke, J. 2003a. Barrier slicing and chopping. In Proceedings of the 3rd IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society, 81--87.
[50]
Krinke, J. 2003b. Context-sensitive slicing of concurrent programs. In Proceedings of the 11th ACM SIGSOFT Symposium on Foundations of Software Engineering. 178--187.
[51]
Krinke, J. 2004. Slicing, chopping, and path conditions with barriers. Softw. Qual. J. 12, 4, 339--360.
[52]
Kuck, D., Kuhn, R., Padua, D., Leasure, B., and Wolfe, M. 1981. Dependence graphs and compiler optimization. In Proceedings of the 8th Symposium on the Principles of Programming Languages, SIGPLAN Notices. 207--218.
[53]
Lakhotia, A. 1993. Rule-based approach to computing module cohesion. In Proceedings of the 15th International Conference on Software Engineering. IEEE Computer Society Press, Los Alamitos, CA, 35--44.
[54]
Larsen, L. and Harrold, M. 1996. Slicing object-oriented software. In Proceedings of the 18th International Conference on Software Engineering. IEEE Computer Society, 495--505.
[55]
Müller-Olm, M. and Seidl, H. 2001. On optimal slicing of parallel programs. In Proc. of the 33rd ACM Symposium on Theory of Computing. ACM, New York, NY, 647--656.
[56]
Nanda, M. and Ramesh, S. 2000. Slicing concurrent programs. In Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, New York, NY, 180--190.
[57]
Lyle, J. and Weiser, M. 1987. Automatic program bug location by program slicing. In Proceedings of the 2nd International Conference on Computers and Applications. 877--882.
[58]
Ning, J., Engberts, A., and Kozaczynski, W. 1994. Automated support for legacy code understanding. Commun. ACM 37, 5, 50--57.
[59]
Nishimatsu, A., Jihira, M., Kusumoto, S., and Inoue, K. 1999. Call-mark slicing: An efficient and economical way of reducing slices. In Proceedings of the 21st International Conference on Software Engineering. ACM Press, 422--431.
[60]
Orso, A., Sinha, S., and Harrold, M. 2001a. Effects of pointers on data dependences. In Proceedings of the 9th International Workshop on Program Comprehension (IWPC'01). 39--49.
[61]
Orso, A., Sinha, S., and Harrold, M. 2001b. Incremental slicing based on data-dependence types. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01). 158--167.
[62]
Ottenstein, K. and Ottenstein, L. 1984. The program dependence graph in a software development environment. In Proceedings of the 1st ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. ACM Press, New York, NY, 177--184.
[63]
Reps, T. and Bricker, T. 1989. Illustrating interference in interfering versions of programs. SIGSOFT Softw. Engineer. Notes 14, 7, 46--55.
[64]
Reps, T. and Rosay, G. 1995. Precise interprocedural chopping. SIGSOFT Softw. Engineer. Notes 20, 4, 41--52.
[65]
Sivagurunathan, Y., Harman, M., and Danicic, S. 1997. Slicing, I/O, and the implicit state. In Proceedings of the International Workshop on Automated and Algorithmic Debugging. 59--68.
[66]
Sparud, J. and Runciman, C. 1997. Tracing lazy functional computations using redex trails. In Proceedings of the 9th International Symposium on Programming Languages, Implementations, Logics and Programs. Springer, Berlin, Lecture Notes in Computer Science, vol. 1292, 291--308.
[67]
Sridharan, M., Fink, S., and Bodik, R. 2007. Thin slicing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York, NY, 112--122.
[68]
Takada, T., Ohata, F., and Inoue, K. 2002. Dependence-cache slicing: A program slicing method using lightweight dynamic information. In Proceedings of the 10th International Workshop on Program Comprehension. IEEE Computer Society, 169--177.
[69]
Tan, H. and Ling, T. 1998. Correct program slicing of database operations. IEEE Softw. 15, 2, 105--112.
[70]
Tip, F. 1995. A survey of program slicing techniques. J. Program. Lang. 3, 121--189.
[71]
Venkatesh, G. A. 1991. The semantic approach to program slicing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM Press, New York, NY, 107--119.
[72]
Ward, M. 2002. Program slicing via fermat transformations. In Proceedings of the 26th International Computer Software and Applications Conference, Prolonging Software Life: Development and Redevelopment. IEEE Computer Society, 357--362.
[73]
Ward, M. 2003. Slicing the scam mug: A case study in semantic slicing. In Proceedings of the 3rd IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society, 88--97.
[74]
Ward, M. and Zedan, H. 2007. Slicing as a program transformation. ACM Trans. Program. Lang. Syst. 29, 2.
[75]
Weiser, M. 1979. Program slices: Formal, psychological, and practical investigations of an automatic program abstraction method. Ph.D. dissertation, University of Michigan.
[76]
Weiser, M. 1981. Program slicing. In Proceedings of the 5th International Conference on Software Engineering. 439--449.
[77]
Weiser, M. 1984. Program slicing. IEEE Trans. Softw. Engineer. 10, 4, 352--357.
[78]
Willmor, D., Embury, S., and Shao, J. 2004. Program slicing in the presence of a database state. In Proceedings of the 20th IEEE International Conference on Software Maintenance. IEEE Computer Society, 448--452.
[79]
Xu, B., Qian, J., Zhang, X., Wu, Z., and Chen, L. 2005. A brief survey of program slicing. SIGSOFT Softw. Engineer. Notes 30, 2, 1--36.
[80]
Zhao, J. 2002. Slicing aspect-oriented software. In Proceedings of the 10th International Workshop on Program Comprehension. IEEE Computer Society, 251.

Cited By

View all
  • (2025)Syntax-preserving program slicing for C-based software product linesJournal of Systems and Software10.1016/j.jss.2024.112255219(112255)Online publication date: Jan-2025
  • (2024)A Computational Model of the Secondary Hemostasis Pathway in Reaction SystemsMathematics10.3390/math1215242212:15(2422)Online publication date: 4-Aug-2024
  • (2024)Reducing the Length of Dynamic and Relevant Slices by Pruning Boolean ExpressionsElectronics10.3390/electronics1306114613:6(1146)Online publication date: 20-Mar-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Computing Surveys
ACM Computing Surveys  Volume 44, Issue 3
June 2012
344 pages
ISSN:0360-0300
EISSN:1557-7341
DOI:10.1145/2187671
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2012
Accepted: 01 October 2010
Revised: 01 December 2007
Received: 01 October 2006
Published in CSUR Volume 44, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Program slicing
  2. software engineering

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)44
  • Downloads (Last 6 weeks)3
Reflects downloads up to 11 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2025)Syntax-preserving program slicing for C-based software product linesJournal of Systems and Software10.1016/j.jss.2024.112255219(112255)Online publication date: Jan-2025
  • (2024)A Computational Model of the Secondary Hemostasis Pathway in Reaction SystemsMathematics10.3390/math1215242212:15(2422)Online publication date: 4-Aug-2024
  • (2024)Reducing the Length of Dynamic and Relevant Slices by Pruning Boolean ExpressionsElectronics10.3390/electronics1306114613:6(1146)Online publication date: 20-Mar-2024
  • (2024)Modeling and Analyzing Reaction Systems in MaudeElectronics10.3390/electronics1306113913:6(1139)Online publication date: 20-Mar-2024
  • (2024)Field-sensitive program slicingJournal of Systems and Software10.1016/j.jss.2023.111939210(111939)Online publication date: Apr-2024
  • (2024)A framework for monitored dynamic slicing of reaction systemsNatural Computing: an international journal10.1007/s11047-024-09976-323:2(217-234)Online publication date: 4-May-2024
  • (2024)Causal analysis of positive Reaction SystemsInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-024-00757-y26:4(509-526)Online publication date: 1-Aug-2024
  • (2024)Vulnerability detection based on transformer and high‐quality number embeddingConcurrency and Computation: Practice and Experience10.1002/cpe.829236:28Online publication date: 23-Sep-2024
  • (2023)Timing Analysis of Embedded Software Updates2023 IEEE 29th International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA)10.1109/RTCSA58653.2023.00010(1-11)Online publication date: 30-Aug-2023
  • (2023)A Case Against Coverage-Based Program Spectra2023 IEEE Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST57152.2023.00011(13-24)Online publication date: Apr-2023
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media