The field of program analysis has focused primarily on sequential programming languages. But multithreading is becoming increasingly important, both as a program structuring mechanism and to support efficient parallel computations. This paper surveys research in analysis for multithreaded programs, focusing on ways to improve the efficiency of analyzing interactions between threads, to detect data races, and to ameliorate the impact of weak memory consistency models. We identify two distinct classes of multithreaded programs, activity management programs and parallel computing programs, and discuss how the structure of these kinds of programs leads to different solutions to these problems. Specifically, we conclude that augmented type syste...
The behavior of multithreaded programs is often difficult to understand and predict. Synchronization...
The ability to summarize procedures is fundamental to building scalable interprocedural analyses. Fo...
We extend the relational approach to interprocedural analysis of sequential programs to concurrent p...
Many different methodologies have been developed for analyzing multithreaded programs. These analyse...
Multithreaded programming is becoming increasingly important because of recent increase in the use o...
Most systems that test and verify parallel programming, such as data race detectors and software tra...
Understanding why the performance of a multithreaded program does not improve linearly with the numb...
Parallel programs are known to be difficult to analyze. A key reason is that they typically have an ...
Threads communicate implicitly through shared mem-ory. Because of the random interleaving during the...
Languages allowing explicitly parallel, multithreaded programming (e.g. Java and C#) need to specify...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
It is generally acknowledged that developing correct multithreaded codes is difficult, because threa...
As highly parallel multicore machines become commonplace, programs must exhibit more concurrency to ...
Concurrent programs are pervasive owing to the increasing adoption of multi-core systems across the ...
AbstractThis paper deals with a technique that can support the re-engineering of parallel programs b...
The behavior of multithreaded programs is often difficult to understand and predict. Synchronization...
The ability to summarize procedures is fundamental to building scalable interprocedural analyses. Fo...
We extend the relational approach to interprocedural analysis of sequential programs to concurrent p...
Many different methodologies have been developed for analyzing multithreaded programs. These analyse...
Multithreaded programming is becoming increasingly important because of recent increase in the use o...
Most systems that test and verify parallel programming, such as data race detectors and software tra...
Understanding why the performance of a multithreaded program does not improve linearly with the numb...
Parallel programs are known to be difficult to analyze. A key reason is that they typically have an ...
Threads communicate implicitly through shared mem-ory. Because of the random interleaving during the...
Languages allowing explicitly parallel, multithreaded programming (e.g. Java and C#) need to specify...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
It is generally acknowledged that developing correct multithreaded codes is difficult, because threa...
As highly parallel multicore machines become commonplace, programs must exhibit more concurrency to ...
Concurrent programs are pervasive owing to the increasing adoption of multi-core systems across the ...
AbstractThis paper deals with a technique that can support the re-engineering of parallel programs b...
The behavior of multithreaded programs is often difficult to understand and predict. Synchronization...
The ability to summarize procedures is fundamental to building scalable interprocedural analyses. Fo...
We extend the relational approach to interprocedural analysis of sequential programs to concurrent p...