Recent trends in software re-engineering have included tools to extract program slices from existing Ada procedures. One such tool has already been developed that extracts program slices from SPARK procedures along with a proof that the functionality of the original procedure is equivalent to the functionality of the collection of resulting slices. This paper extends this work by showing how assumptions in the proof can cause inefficiencies in SPARKSlicer and by presenting alternatives that optimize out the inefficiencies. The original proof is modified to show that the SPARK program slicer still produces functionally equivalent program slices from SPARK procedures with these optimizations. Categories and Subject Descriptors D.2.6 [Software Engineering]: Programming Environments – Formal Methods. General Terms Languages, Formal Methods. Keywords Program slicing, ASIS.
Ricky E. Sward, Leemon C. Baird III