Skip to main content

Abstract Program Slicing: From Theory towards an Implementation

  • Conference paper
Formal Methods and Software Engineering (ICFEM 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6447))

Included in the following conference series:

Abstract

In this paper we extend the formal framework proposed by Binkley et al. for representing and comparing forms of program slicing. This framework describes many well-known forms of slicing in a unique formal structure based on (abstract) projections of state trajectories. We use this formal framework for defining a new technique of slicing, called abstract slicing, which aims to slice programs with respect to properties of variables. In this way we are able to extend the original work with three forms of abstract slicing, static, dynamic and conditioned, we show that all existing forms are instantiations of their corresponding abstract forms and we enrich the existing slicing technique hierarchy by inserting these abstract forms of slicing. Furthermore, we provide an algorithmic approach for extracting abstract slices. The algorithm is split into two modules: the simple approach, used for abstract static slicing, and the extended approach, composed of several applications of the simple one, which is used for abstract conditioned slicing.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Binkley, D., Danicic, S., Gyimóthy, T., Harman, M., Kiss, Á., Korel, B.: A formalisation of the relationship between forms of program slicing. Sci. Comput. Program 62(3), 228–252 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  2. Binkley, D., Danicic, S., Gyimóthy, T., Harman, M., Kiss, Á., Korel, B.: Theoretical foundations of dynamic program slicing. Theor. Comput. Sci. 360(1), 23–41 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  3. Binkley, D.W., Gallagher, K.B.: Program slicing. Advances in Computers 43 (1996)

    Google Scholar 

  4. Canfora, G., Cinitile, A., De Lucia, A.: Conditioned program slicing. Information and Software Tech. 40, 11–12 (1998)

    Article  Google Scholar 

  5. Cimitile, A., De Lucia, A., Munro, M.: A specification driven slicing process for identifying reusable functions. Journal of Software Maintenance 8(3), 145–178 (1996)

    Article  Google Scholar 

  6. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proc. of Conf. Record of the 4th ACM Symp. on Principles of Programming Languages (POPL 1977), pp. 238–252. ACM Press, New York (1977)

    Google Scholar 

  7. De Lucia, A.: Program slicing: Methods and applications. In: IEEE International Workshop on Source Code Analysis and Manipulation (2001)

    Google Scholar 

  8. Field, J., Ramalingam, G., Tip, F.: Parametric program slicing. In: POPL 1995: Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 379–392. ACM, New York (1995)

    Google Scholar 

  9. Gallagher, K.B., Lyle, J.R.: Using program slicing in software maintenance. IEEE Trans. on Software Engineering 17(8), 751–761 (1991)

    Article  Google Scholar 

  10. Giacobazzi, R., Mastroeni, I.: Abstract non-interference: Parameterizing non-interference by abstract interpretation. In: Proc. of the 31st Annual ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (POPL 2004), pp. 186–197. ACM-Press, New York (2004)

    Google Scholar 

  11. Hong, H.S., Lee, I., Sokolsky, O.: Abstract slicing: A new approach to program slicing based on abstract interpretation and model checking. In: Proc. of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2005), pp. 25–34. IEEE Comp. Soc. Press, Los Alamitos (2005)

    Chapter  Google Scholar 

  12. Korel, B., Laski, J.: Dynamic program slicing. Information Processing Letters 29(3), 155–183 (1988)

    Article  MATH  Google Scholar 

  13. Mastroeni, I., Zanardini, D.: Data dependencies and program slicing: From syntax to abstract semantics. In: Proc. of the ACM SIGPLAN Symp. on Partial Evaluation and Semantics-Based Program Manipulation (PEPM 2008), pp. 125–134 (2008)

    Google Scholar 

  14. Tip, F.: A survey of program slicing techniques. J. of Programming Languages 3, 121–189 (1995)

    Google Scholar 

  15. Weiser, M.: Program slicing. IEEE Trans. on Software Engineering 10(4), 352–357 (1984)

    Article  MATH  Google Scholar 

  16. Yorsh, G., Ball, T., Sagiv, M.: Testing, abstraction, theorem proving: better together! In: ISSTA 2006: Proceedings of the 2006 International Symposium on Software Testing and Analysis, pp. 145–156. ACM, New York (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mastroeni, I., Nikolić, Đ. (2010). Abstract Program Slicing: From Theory towards an Implementation. In: Dong, J.S., Zhu, H. (eds) Formal Methods and Software Engineering. ICFEM 2010. Lecture Notes in Computer Science, vol 6447. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16901-4_30

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-16901-4_30

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-16900-7

  • Online ISBN: 978-3-642-16901-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics