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)


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.


slicing semantics Maude debugging 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  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