Value Slice: A New Slicing Concept for Scalable Property Checking

Part of the Lecture Notes in Computer Science book series (LNCS, volume 9035)

Abstract

A backward slice is a commonly used preprocessing step for scaling property checking. For large programs though, the reduced size of the slice may still be too large for verifiers to handle. We propose an aggressive slicing method that, apart from slicing out the same statements as backward slice, also eliminates computations that only decide whether the point of property assertion is reachable. However, for precision, we also carefully identify and retain all computations that influence the values of the variables in the property. The resulting slice, called value slice, is smaller and scales better for property checking than backward slice.

We carry experiments on property checking of industry strength programs using three comparable slicing techniques: backward slice, value slice and an even more aggressive slicing technique called thin slice that retains only those statements on which the variables in the property are data dependent. While backward slicing enables highest precision and thin slice scales best, value slice based property checking comes close to the best in both scalability and precision. This makes value slice a good compromise between backward and thin slice for property checking.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, & Tools. Pearson Education, Inc. (2006)Google Scholar
  2. 2.
    Barros, J.B., da Cruz, D., Henriques, P.R., Pinto, J.S.: Assertion-based slicing and slice graphs. In: Proceedings of SEFM (2010)Google Scholar
  3. 3.
    Bergeretti, J.-F., Carré, B.A.: Information-flow and data-flow analysis of while-programs. ACM Trans. Program. Lang. Syst. 7(1), 37–61 (1985)CrossRefMATHGoogle Scholar
  4. 4.
    Bilardi, G., Pingali, K.: A framework for generalized control dependence. In: Proceedings of PLDI (1996)Google Scholar
  5. 5.
    Binkley, D.W., Gallagher, K.B.: Program slicing. Advances in Computers 43, 1–50 (1996)CrossRefGoogle Scholar
  6. 6.
    Canfora, G., Cimitile, A., De Lucia, A.: Conditioned program slicing. Information & Software Technology 40(11-12), 595–607 (1998)CrossRefGoogle Scholar
  7. 7.
    Chimdyalwar, B., Kumar, S.: Effective false positive filtering for evolving software. In: Proceedings of ISEC (2011)Google Scholar
  8. 8.
    Clarke, E., Kroning, D., Sharygina, N., Yorav, K.: SATABS: SAT-based predicate abstraction for ANSI-C. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 570–574. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Comuzzi, J.J., Hart, J.M.: Program slicing using weakest preconditions. In: Gaudel, M.-C., Wing, J.M. (eds.) FME 1996. LNCS, vol. 1051, pp. 557–575. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  10. 10.
    Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9(3), 319–349 (1987)CrossRefMATHGoogle Scholar
  11. 11.
    Gold, N., Harman, M.: An empirical study of static program slice size. ACM Trans. on Software Engineering and Methodology (TOSEM) 16 (2007)Google Scholar
  12. 12.
    Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. SIGPLAN Not. 23, 35–46 (1988)CrossRefGoogle Scholar
  13. 13.
    Jackson, D., Rollins, E.J.: Chopping: A generalization of slicing. Technical report, Pittsburgh, PA, USA (1994)Google Scholar
  14. 14.
    Khare, S., Saraswat, S., Kumar, S.: Static program analysis of large embedded code base: an experience. In: Proceedings of ISEC (2011)Google Scholar
  15. 15.
    Korel, B., Laski, J.: Dynamic program slicing. Inf. Process. Lett. 29(3), 155–163 (1988)CrossRefMATHGoogle Scholar
  16. 16.
    Silva, J.: A vocabulary of program slicing-based techniques. ACM Comput. Surv. 44(3), 1–41 (2012)CrossRefGoogle Scholar
  17. 17.
    Sridharan, M., Fink, S.J., Bodik, R.: Thin slicing. In: Proceedings of PLDI (2007)Google Scholar
  18. 18.
    Tarjan, R.E.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972)CrossRefMATHMathSciNetGoogle Scholar
  19. 19.
    Weiser, M.: Program slicing. In: Proceedings of ICSE (1981)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Shrawan Kumar
    • 1
  • Amitabha Sanyal
    • 2
  • Uday P. Khedker
    • 2
  1. 1.Tata Consultancy Services LtdPuneIndia
  2. 2.IIT BombayMumbaiIndia

Personalised recommendations