Publication
ICS 1992
Conference paper
Compile-time analysis of communicating processes
Abstract
We present an algorithm for analyzing deadlock and for constructing sequentializations of a class of communicating sequential processes. The algorithm may be used for deadlock detection in parallel and distributed programs at compile time, or for debugging purposes at run time. The algorithm generates a data structure we call the flow graph, which contains all you need to know about the communications between the processes. If the algorithm is used only for debugging, it is not necessary to retain a copy of the flow graph. Both static deadlock analysis and trace generation are linear in the size of the (minimum) flow graph we construct.