1998
DOI: 10.1145/277633.277638
|View full text |Cite
|
Sign up to set email alerts
|

Static slicing of threaded programs

Abstract: Static program slicing is an established method for analyzing sequential programs, especially for program understanding, debugging and testing. Until now, there was no slicing method for threaded programs which handles interference correctly. We present such a method which also calculates more precise static slices. This paper extends the well known structures of the control flow graph and the program dependence graph for threaded programs with interference. This new technique does not require serialization of… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
47
0

Year Published

1999
1999
2015
2015

Publication Types

Select...
4
3

Relationship

0
7

Authors

Journals

citations
Cited by 51 publications
(47 citation statements)
references
References 16 publications
0
47
0
Order By: Relevance
“…We can ensure this due to the invariant pending ∩ M eb = ∅ which is always true at the end of the loop (8). Then, because M eb increases in every iteration (5) and the size of N is finite, pending will eventually become empty and the loop will terminate.…”
Section: Definition 6 (Meb Slice) Given a Specification S With An Asmentioning
confidence: 98%
See 3 more Smart Citations
“…We can ensure this due to the invariant pending ∩ M eb = ∅ which is always true at the end of the loop (8). Then, because M eb increases in every iteration (5) and the size of N is finite, pending will eventually become empty and the loop will terminate.…”
Section: Definition 6 (Meb Slice) Given a Specification S With An Asmentioning
confidence: 98%
“…In fact, for CSP specifications, being able to represent multiple threads is a necessary but not a sufficient condition. For instance, the threaded Control Flow Graph (tCFG) [8,9] can represent multiple threads through the use of the so called "start thread " and "end thread " nodes; but it does not handle synchronizations between threads. Callahan and Sublok introduced a data structure [2], the Synchronized Control Flow Graph (SCFG), which explicitly represents synchronizations between threads with a special edge for synchronization flows.…”
Section: Context-sensitive Synchronized Control Flow Graphsmentioning
confidence: 99%
See 2 more Smart Citations
“…The first case in this definition encodes the common data dependence. For example, for an assignment x := E, the write of x has data dependence on the reads generated by the evaluation of E. The second case in Definition 8 captures the interference dependence [13] in multithreaded programs, saying that a read depends on the most recent write of the same memory location. For instance, in Figure 4, if the observed execution is C 1 S 1 S 3 then the read of x at S 3 is data dependent on the most recent write of x at S 1 .…”
Section: Definitionmentioning
confidence: 99%