## An Efficient Algorithm for Computing MHP Information for Concurrent Java Programs (1999)

### Cached

### Download Links

Citations: | 49 - 7 self |

### BibTeX

@INPROCEEDINGS{Naumovich99anefficient,

author = {Gleb Naumovich and George S. Avrunin and Lori A. Clarke},

title = {An Efficient Algorithm for Computing MHP Information for Concurrent Java Programs},

booktitle = {},

year = {1999},

pages = {338--354}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. Information about which statements in a concurrent program may happen in parallel (MHP) has a number of important applications. It can be used in program optimization, debugging, program understanding tools, improving the accuracy of data flow approaches, and detecting synchronization anomalies, such as data races. In this paper we propose a data flow algorithm for computing a conservative estimate of the MHP information for Java programs that has a worstcase time bound that is cubic in the size of the program. We present a preliminary experimental comparison between our algorithm and a reachability analysis algorithm that determines the ”ideal ” static MHP information for concurrent Java programs. This initial experiment indicates that our data flow algorithm precisely computed the ideal MHP information in the vast majority of cases we examined. In the two out of 29 cases where the MHP algorithm turned out to be less than ideally precise, the number of spurious pairs was small compared to the total number of ideal MHP pairs. 1

### Citations

277 |
Flow Analysis of Computer Programs
- Hecht
- 1977
(Show Context)
Citation Context ...¢ Ú GENnotifyAllM¨©‹R0¢ 3 The MHP Algorithm In this section we present the data flow equations for the MHP algorithm. We do this instead of using the lattice/function space view of data flow problems =-=[6]-=- since it makes explanations of this algorithm more intuitive and, as will be evident, one aspect of this algorithm precludes its representation as a purely forward- or backward-flow data flow problem... |

173 |
Concurrent Programming in Java: design principles and patterns. The Java Series
- Lea
- 1996
(Show Context)
Citation Context ...n statements and any exception handling, since these are currently not handled in our algorithm. The majority of our examples came from Doug Lea’s book on Java concurrency [10] and its Web supplement =-=[11]-=-. For most of these examples Lea gives only the classes implementing various synchronization schemes, sometimes with a brief example of their use in concurrent programs. We used these synchronization ... |

171 | Precise concrete type inference for object-oriented languages
- PLEVYAK, CHIEN
- 1994
(Show Context)
Citation Context ...ake the usual assumption that there exists a known upper bound on the number of instances of each thread class. In addition, we assume that alias resolution has been done (e.g., using methods such as =-=[9, 18]-=-). At present we inline all called methods, except communication methods, into the control flow graphs for the threads. This results in a single CFG for each thread. Each call to a communication metho... |

125 |
Concurrent Programming in Java
- Lea
- 2000
(Show Context)
Citation Context ...rsions of the synchronization statements and any exception handling, since these are currently not handled in our algorithm. The majority of our examples came from Doug Lea’s book on Java concurrency =-=[10]-=- and its Web supplement [11]. For most of these examples Lea gives only the classes implementing various synchronization schemes, sometimes with a brief example of their use in concurrent programs. We... |

77 | M.: Demand Interprocedural Dataflow Analysis
- Horwitz, Reps, et al.
- 1995
(Show Context)
Citation Context ... case of methods containing thread synchronization mechanisms, we plan to use a context-sensitive approach, extending the PEG model to include method call and return edges, similar to the approach of =-=[7]-=-, and modifying the MHP algorithm accordingly. At present, the MHP algorithm is being used as a part of the FLAVERS/Java tool [16] for data flow-based verification of application-specific properties o... |

71 |
Complexity of analyzing the synchronization structure of concurrent programs
- Taylor
- 1983
(Show Context)
Citation Context ... precisely computing all pairs of statements that may execute in parallel is undecidable. If we assume that all control paths in all threads of control are executable, then the problem is NP-complete =-=[19]-=-. In this paper, we call the solution with this assumption the ideal MHP information for a program. To compute the MHP information efficiently, a trade-off must be made, where instead of the ideal inf... |

66 | Static slicing of threaded programs
- Krinke
- 1998
(Show Context)
Citation Context ...y happen in parallel (MHP) has a number of important applications. It can be used in program optimization, debugging, program understanding tools, improving the accuracy of data flow approaches (e.g. =-=[8, 12, 16]-=-), and detecting synchronization anomalies, such as data races. For example, in optimization, if it is known that two threads of control will never attempt to enter a critical region of code at the sa... |

53 |
Static analysis of low-level synchronization
- Callahan, Subhlok
- 1988
(Show Context)
Citation Context ...ll compared to the total number of ideal MHP pairs. Several approaches for computing the MHP information for programs using various synchronization mechanisms have been proposed. Callahan and Subhlok =-=[4]-=- proposed a data flow algorithm that computes, for each statement in a concurrent program with post-wait synchronization, the set of statements that must be executed before this statement can be execu... |

52 |
Non-concurrency analysis
- Masticola, Ryder
- 1993
(Show Context)
Citation Context ...sterwald and Soffa [5] applied this approach to the Ada rendezvous model and extended B4 analysis to be interprocedural. Masticola and Ryder proposed an iterative approach of non-concurrency analysis =-=[13]-=- that computes a conservative estimate of the set of pairs of communication statements that can never happen in parallel in a concurrent Ada program. (The complement of this set is a conservative appr... |

41 | Data flow analysis for checking properties of concurrent Java programs
- Naumovich, Avrunin, et al.
- 1998
(Show Context)
Citation Context ...y happen in parallel (MHP) has a number of important applications. It can be used in program optimization, debugging, program understanding tools, improving the accuracy of data flow approaches (e.g. =-=[8, 12, 16]-=-), and detecting synchronization anomalies, such as data races. For example, in optimization, if it is known that two threads of control will never attempt to enter a critical region of code at the sa... |

40 | Concurrency analysis in the presence of procedures using a data-flow framework
- Duesterwald, Soffa
- 1991
(Show Context)
Citation Context ...utes, for each statement in a concurrent program with post-wait synchronization, the set of statements that must be executed before this statement can be executed (B4 analysis). Duesterwald and Soffa =-=[5]-=- applied this approach to the Ada rendezvous model and extended B4 analysis to be interprocedural. Masticola and Ryder proposed an iterative approach of non-concurrency analysis [13] that computes a c... |

39 | A conservative data flow algorithm for detecting all pairs of statement that may happen in parallel
- Naumovich, Avrunin
- 1998
(Show Context)
Citation Context ... 9)+$ ; , -!I *)4"!#+$ !!01 "0(!2 3)4" #+ C-? . 9)+$ " #65KI (9)+$ 0?A5J #657-"!(89)+$ : ! ;<5="!'657&-(19)>>= -? "-A@@+$ " Figure 1: Java code example . .-?A5 "(1%)+$ Recently, Naumovich and Avrunin =-=[15]-=- proposed a data flow algorithm for computing the MHP information for programs with a rendezvous model of concurrency. Although the worst-case complexity of this algorithm isLNMOQP*R, is the number of... |

35 | Task interaction graphs for concurrency analysis - Long, Clarke - 1989 |

33 |
A model of Ada programs for static deadlock detection in polynomial time
- Masticola, Ryder
- 1991
(Show Context)
Citation Context ...y happen in parallel (MHP) has a number of important applications. It can be used in program optimization, debugging, program understanding tools, improving the accuracy of data flow approaches (e.g. =-=[8, 12, 16]-=-), and detecting synchronization anomalies, such as data races. For example, in optimization, if it is known that two threads of control will never attempt to enter a critical region of code at the sa... |

30 |
Pointer-induced aliasing: A problem taxonomy
- Landi, Ryder
- 1991
(Show Context)
Citation Context ...ake the usual assumption that there exists a known upper bound on the number of instances of each thread class. In addition, we assume that alias resolution has been done (e.g., using methods such as =-=[9, 18]-=-). At present we inline all called methods, except communication methods, into the control flow graphs for the threads. This results in a single CFG for each thread. Each call to a communication metho... |

27 | Constructing compact models of concurrent Java programs - Corbett - 1998 |

14 | Lattice Frameworks for Multisource and Bidirectional Data Flow Problems
- Masticola, Marlowe, et al.
- 1995
(Show Context)
Citation Context ...thm more intuitive and, as will be evident, one aspect of this algorithm precludes its representation as a purely forward- or backward-flow data flow problem or even as a bidirectional or multisource =-=[14]-=- data flow problem. At the end of this section we present a pseudo-code version of the worklist version of the MHP algorithm. 3.1 High-Level Overview Initially we assume that each node in the PEG may ... |