Static Slicing of Rewrite Systems

  • Authors:
  • Diego Cheda;Josep Silva;Germán Vidal

  • Affiliations:
  • DSIC, Technical University of Valencia, Camino de Vera S/N, 46022 Valencia, Spain;DSIC, Technical University of Valencia, Camino de Vera S/N, 46022 Valencia, Spain;DSIC, Technical University of Valencia, Camino de Vera S/N, 46022 Valencia, Spain

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Program slicing is a method for decomposing programs by analyzing their data and control flow. Slicing-based techniques have many applications in the field of software engineering (like program debugging, testing, code reuse, maintenance, etc). Slicing has been widely studied within the imperative programming paradigm, where it is often based on the so called program dependence graph, a data structure that makes explicit both the data and control dependences for each operation in a program. Unfortunately, the notion of ''dependence'' cannot be easily adapted to a functional context. In this work, we define a novel approach to static slicing (i.e., independent of a particular input data) for first-order functional programs which are represented by means of rewrite systems. For this purpose, we introduce an appropriate notion of dependence that can be used for computing program slices. Also, since the notion of static slice is generally undecidable, we introduce a complete approximation for computing static slices which is based on the construction of a term dependence graph, the counterpart of program dependence graphs.