Towards a Formal Semantics-Based Technique for Interprocedural Slicing

  • Irina Măriuca Asăvoae
  • Mihail Asăvoae
  • Adrián Riesco
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8739)

Abstract

Interprocedural slicing is a technique applied on programs with procedures which relies on how the information is passed at procedure call/return sites. Such a technique computes program slices (i.e. program fragments restricted w.r.t. a given criterion). The existing approaches to interprocedural slicing exploit the particularities of the underlying language semantics in order to compute program slices. In this paper we propose a generic technique for interprocedural slicing. More specifically, our approach works with inferred particularities of a language semantics, given as a rewriting-logic specification, and computes program slices using a term slicing-based algorithm.

Keywords

slicing semantics Maude debugging 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alpuente, M., Ballis, D., Espert, J., Romero, D.: Backward trace slicing for rewriting logic theories. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS, vol. 6803, pp. 34–48. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  2. 2.
    Berry, G., Gonthier, G.: The esterel synchronous programming language: Design, semantics, implementation. Sci. Comput. Program (SCP) 19(2), 87–152 (1992)CrossRefMATHGoogle Scholar
  3. 3.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: All About Maude - A High-Performance Logical Framework. LNCS, vol. 4350. Springer, Heidelberg (2007)MATHGoogle Scholar
  4. 4.
    Ellison, C., Rosu, G.: An executable formal semantics of c with applications. In: POPL, pp. 533–544 (2012)Google Scholar
  5. 5.
    Esterel Technologies Scade Language Reference Manual 2011 (2011)Google Scholar
  6. 6.
    Farzan, A., Chen, F., Meseguer, J., Roşu, G.: Formal analysis of java programs in javaFAN. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 501–505. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  7. 7.
    Gulwani, S., Tiwari, A.: Computing procedure summaries for interprocedural analysis. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 253–267. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  8. 8.
    Harman, M., Danicic, S.: Using program slicing to simplify testing. Journal of Software Testing, Verification and Reliability 5, 143–162 (1995)CrossRefGoogle Scholar
  9. 9.
    Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous dataflow programming language lustre. In: Proc. of the IEEE, pp. 1305–1320 (1991)Google Scholar
  10. 10.
    Hennessy, M.: The Semantics of Programming Languages: An Elementary Introduction Using Structural Operational Semantics. John Wiley & Sons (1990)Google Scholar
  11. 11.
    Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. In: Conference on Programming Language Design and Implementation, PLDI 1988, pp. 35–46 (1988)Google Scholar
  12. 12.
    Jhala, R., Majumdar, R.: Path slicing. In: Proc. of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2005, pp. 38–47. ACM Press (2005)Google Scholar
  13. 13.
    Martí-Oliet, N., Meseguer, J.: Rewriting logic: roadmap and bibliography. Theor. Comput. Sci. 285(2), 121–154 (2002)CrossRefMATHGoogle Scholar
  14. 14.
    Meseguer, J., Roşu, G.: The rewriting logic semantics project. Theoretical Computer Science 373(3), 213–237 (2007)CrossRefMATHMathSciNetGoogle Scholar
  15. 15.
    Nemer, F., Cassé, H., Sainrat, P., Bahsoun, J.P., De Michiel, M.: PapaBench: a Free Real-Time Benchmark. In: WCET 2006 (2006)Google Scholar
  16. 16.
    Riesco, A.: Using semantics specified in Maude to generate test cases. In: Roychoudhury, A., D’Souza, M. (eds.) ICTAC 2012. LNCS, vol. 7521, pp. 90–104. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  17. 17.
    Riesco, A., Asăvoae, I.M., Asăvoae, M.: A generic program slicing technique based on language definitions. In: Martí-Oliet, N., Palomino, M. (eds.) WADT 2012. LNCS, vol. 7841, pp. 248–264. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  18. 18.
    Riesco, A., Verdejo, A., Martí-Oliet, N., Caballero, R.: Declarative debugging of rewriting logic specifications. Journal of Logic and Algebraic Programming (2012)Google Scholar
  19. 19.
    Şerbănuţă, T., Ştefănescu, G., Roşu, G.: Defining and executing P systems with structured data in K. In: Corne, D.W., Frisco, P., Păun, G., Rozenberg, G., Salomaa, A. (eds.) WMC 2008. LNCS, vol. 5391, pp. 374–393. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  20. 20.
    Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Program Flow Analysis, pp. 189–233 (1981)Google Scholar
  21. 21.
    Silva, J., Chitil, O.: Combining algorithmic debugging and program slicing. In: PPDP, pp. 157–166. ACM Press (2006)Google Scholar
  22. 22.
    Sridharan, M., Fink, S.J., Bodík, R.: Thin slicing. In: PLDI, pp. 112–122 (2007)Google Scholar
  23. 23.
    Tian, C., Feng, M., Gupta, R.: Speculative parallelization using state separation and multiple value prediction. In: Proc. of the 2010 International Symposium on Memory Management, ISMM 2010, pp. 63–72. ACM Press (2010)Google Scholar
  24. 24.
    Tip, F.: A survey of program slicing techniques. J. Prog. Lang. 3(3) (1995)Google Scholar
  25. 25.
    Verdejo, A., Martí-Oliet, N.: Executable structural operational semantics in Maude. Journal of Logic and Algebraic Programming 67, 226–293 (2006)CrossRefMATHMathSciNetGoogle Scholar
  26. 26.
    Weiser, M.: Program slicing. In: Proc. of the 5th International Conference on Software Engineering, ICSE 1981, pp. 439–449. IEEE Press (1981)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Irina Măriuca Asăvoae
    • 1
  • Mihail Asăvoae
    • 1
  • Adrián Riesco
    • 2
  1. 1.VERIMAG/UJFGièresFrance
  2. 2.Universidad Complutense de MadridMadridSpain

Personalised recommendations