Towards a Formal Semantics-Based Technique for Interprocedural Slicing

Interprocedural slicing is a technique applied on programs with procedures which relies on how the information is passed at pro- cedure call/return sites. Such a technique computes program slices (i.e. program fragments restricted w.r.t. a given criterion). The existing ap- proaches to interprocedural slicing exploit the particularities of the un- derlying 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 lan- guage semantics, given as a rewriting-logic specification, and computes program slices using a term slicing-based algorithm.

[1]  Olaf Chitil,et al.  Combining algorithmic debugging and program slicing , 2006, PPDP '06.

[2]  Pascal Sainrat,et al.  PapaBench: a Free Real-Time Benchmark , 2006, WCET.

[3]  Sumit Gulwani,et al.  Computing Procedure Summaries for Interprocedural Analysis , 2007, ESOP.

[4]  Mark Harman,et al.  Using program slicing to simplify testing , 1995, Softw. Test. Verification Reliab..

[5]  María Alpuente,et al.  Backward Trace Slicing for Rewriting Logic Theories , 2011, CADE.

[6]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[7]  Adrián Riesco,et al.  A Generic Program Slicing Technique Based on Language Definitions , 2012, WADT.

[8]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[9]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[10]  Chucky Ellison,et al.  An executable formal semantics of C with applications , 2011, POPL '12.

[11]  Adrián Riesco,et al.  Declarative debugging of rewriting logic specifications , 2012, J. Log. Algebraic Methods Program..

[12]  Manu Sridharan,et al.  Thin slicing , 2007, PLDI '07.

[13]  José Meseguer,et al.  Rewriting logic: roadmap and bibliography , 2002, Theor. Comput. Sci..

[14]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[15]  José Meseguer,et al.  The Rewriting Logic Semantics Project , 2006, SOS@ICALP.

[16]  Alberto Verdejo,et al.  Executable structural operational semantics in Maude , 2006, J. Log. Algebraic Methods Program..

[17]  José Meseguer,et al.  Formal Analysis of Java Programs in JavaFAN , 2004, CAV.

[18]  Matthew Hennessy,et al.  Semantics of programming languages - an elementary introduction using structural operational semantics , 1990 .

[19]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[20]  Adrián Riesco Using Semantics Specified in Maude to Generate Test Cases , 2012, ICTAC.

[21]  Rajiv Gupta,et al.  Speculative parallelization using state separation and multiple value prediction , 2010, ISMM '10.

[22]  Rupak Majumdar,et al.  Path slicing , 2005, PLDI '05.

[23]  Gheorghe Stefanescu,et al.  Defining and Executing P Systems with Structured Data in K , 2009, Workshop on Membrane Computing.