Precise slicing of concurrent programs

  • Authors:
  • Dennis Giffhorn;Christian Hammer

  • Affiliations:
  • Universität Karlsruhe (TH), Karlsruhe, Germany;Universität Karlsruhe (TH), Karlsruhe, Germany

  • Venue:
  • Automated Software Engineering
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

While there exist efficient algorithms to slice sequential programs precisely, there are only two algorithms for precise slicing of concurrent interprocedural programs with recursive procedures (Krinke in Proc. ESEC/FSE'03, pp. 178---187, 2003; Nanda and Ramesh in ACM Toplas. 28(6):1088---1144, 2006). We present an empirical evaluation of both algorithms for Java. We demonstrate that both algorithms provide the same precision up to the model of concurrency in use and show that the concurrency model has strong impact on slice precision and computation costs. Furthermore, we extend both algorithms to support dynamic thread creation both in loops and recursion--a feature that the original algorithms could not fully handle. The worst case complexity of the algorithms being exponential, we developed several optimizations and compared these with each other and with algorithms that trade precision for speed. Finally, we show that one algorithm may produce incorrect slices and present a remedy.