A Generic Program Slicing Technique Based on Language Definitions

A formal executable semantics of a programming language has the necessary information to develop program debugging and reasoning techniques. In this paper we choose such a particular technique called program slicing and we introduce a generic algorithm which extracts a set of side-effects inducing constructs, directly from the formal executable semantics of a programming language. These constructs are further used to infer program slices, for given programs and specified slicing criteria. Our proposed approach improves on the parametrization of the language tools development because changes in the formal semantics are automatically carried out in the slicing procedure. We use the rewriting logic and the Maude system to implement a prototype and to test our technique.

[1]  María Alpuente,et al.  Backward Trace Slicing for Conditional Rewrite Theories , 2012, LPAR.

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

[3]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[4]  José Alberto Verdejo López,et al.  Executable Structural Operational Semantics in Maude , 2003 .

[5]  Paliath Narendran,et al.  Unification Theory , 2001, Handbook of Automated Reasoning.

[6]  Eugene H. Spafford,et al.  Debugging with dynamic slicing and backtracking , 1993, Softw. Pract. Exp..

[7]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

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

[9]  Leon Sterling,et al.  The Art of Prolog - Advanced Programming Techniques , 1986 .

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

[11]  Victor W. Marek Book review: The Art of Prolog Advanced Programming Techniques by L. Sterling and E. Shapiro (The MIT Press) , 1988, SGAR.

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

[13]  Nikolaj Bjørner,et al.  Automated Deduction - CADE-23 - 23rd International Conference on Automated Deduction, Wroclaw, Poland, July 31 - August 5, 2011. Proceedings , 2011, CADE.

[14]  M. Eliantonio,et al.  Private Parties and the Annulment Procedure: Can the Gap in the European System of Judicial Protection Be Closed? , 2010 .

[15]  Meenakshi D'Souza,et al.  Theoretical Aspects of Computing – ICTAC 2012 , 2012, Lecture Notes in Computer Science.

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

[17]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[18]  Frank Tip,et al.  Dynamic dependence in term rewriting systems and its application to program slicing , 1994, Inf. Softw. Technol..

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

[20]  Franz Baader,et al.  Unification theory , 1986, Decis. Support Syst..

[21]  José Meseguer,et al.  Specification and proof in membership equational logic , 2000, Theor. Comput. Sci..

[22]  Jan Gustafsson,et al.  Faster WCET flow analysis by program slicing , 2006, LCTES '06.

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

[24]  Frank Tip,et al.  Parametric program slicing , 1995, POPL '95.

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

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