An overview of methods for dependence analysis of concurrent programs
Program dependence analysis is an analysis technique to identify and determine various program dependencies in source codes, which has been widely used in program understanding, debugging, testing, reverse engineering, and maintenance. However, there are still many difficulties to be solved when carrying out dependence analysis for concurrent programs because the execution of statements is unpredictable. This survey describes methods and research directions for dependence analysis of concurrent programs, especially about how to obtain the dependencies between concurrently executed statements, the factors leading to intransitivity among dependencies, and how to deal with the intransitivity problem. By careful comparisons, users can select a proper algorithm for their requirements.
concurrency program dependence analysis concurrent program dependence graph program slicing