Treffer: Slicing Multi-threaded Java Programs: A Case Study
Weitere Informationen
Program slicing is becoming increasingly popular as an initial step in the construction of finite-state models for automated verification. As part of a project aimed at building tools to automate the extraction of compact, sound finitestate models of concurrent Java programs, we have developed the theoretical foundations of slicing threaded programs that use Java monitors and wait/notify synchronization. In this paper, we describe how these foundations are incorporated into a tool that slices multi-threaded Java programs. We describe a simple static analysis that can be used to refine the underlying dependences used by the slicer and illustrate the effectiveness of this refinement by describing the slicing of a realistic Java program. 1 Introduction Program slicing has long been recognized as an effective means of focusing attention on relevant parts of a program. It has been used as a prelude to program debugging, understanding, reengineering, and parallelization approaches. Recent y.