Formal Program Reversing by Conditioned Slicing

  • Authors:
  • Gustavo Villavicencio

  • Affiliations:
  • -

  • Venue:
  • CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

In [33 ]we have appl ed [\kern-0.15em[ P ]\kern-0.15em]= \langle[\kern-0.15em[ P_1]\kern-0.15em] , \ldots , [\kern-0.15em[ P_n]\kern-0.15em] \rangle as a conjuncture to reverse calculate the formal specifications of a program P through the application of static slicing on output variables. This conjecture defines a calculation pattern: the formal specification for each slice is calculated and the whole program specification is obtained by combining the slice specifications by the split (\langle ... \rangle)combinator.However, the conjecture fails when we use conditioned slices as a complexity-reduction mechanism.Thus, it is necessary to define a new calculation pattern for the conditioned slices. Since we need to reconstruct the static slice on an output variable combining the conditioned slices on such variable,"transversal calculus " is required instead of a "linear calculation " as in [33 ]. The definition of the calculus patterns is important when facing the construct on of the automatic support for the present approach because they contribute to the systematization of the calculus process.