Graph models for reachability analysis of concurrent programs
- 1 April 1995
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 4 (2) , 171-213
- https://doi.org/10.1145/210134.210180
Abstract
The problem of analyzing concurrent systems has been investigated by many researchers, and several solutions have been proposed. Among the proposed techniques, reachability analysis—systematic enumeration of reachable states in a finite-state model—is attractive because it is conceptually simple and relatively straightforward to automate and can be used in conjunction with model-checking procedures to check for application-specific as well as general properties. This article shows that the nature of the translation from source code to a modeling formalism is of greater practical importance than the underlying formalism. Features identified as pragmatically important are the representation of internal choice, selection of a dynamic or static matching rule, and the ease of applying reductions. Since combinatorial explosion is the primary impediment to application of reachability analysis, a particular concern in choosing a model is facilitating divide-and-conquer analysis of large programs. Recently, much interest in finite-state verification systems has centered on algebraic theories of concurrency. Algebraic structure can be used to decompose reachability analysis based on a flowgraph model. The semantic equivalence of graph and Petri net-based models suggests that one ought to be able to apply a similar strategy for decomposing Petri nets. We describe how category-theoretic treatments of Petri nets provide a basis for decomposition of Petri net reachability analysis.Keywords
This publication has 25 references indexed in Scilit:
- A concurrency analysis tool suite for Ada programsACM Transactions on Software Engineering and Methodology, 1995
- Structural testing of concurrent programsIEEE Transactions on Software Engineering, 1992
- Automated analysis of concurrent systems with the constrained expression toolsetIEEE Transactions on Software Engineering, 1991
- Design and implementation of a Petri net based toolkit for Ada tasking analysisIEEE Transactions on Parallel and Distributed Systems, 1990
- Petri nets: Properties, analysis and applicationsProceedings of the IEEE, 1989
- Automatic verification of finite-state concurrent systems using temporal logic specificationsACM Transactions on Programming Languages and Systems, 1986
- Modeling the Ada task system by Petri netsComputer Languages, 1985
- A Theory of Communicating Sequential ProcessesJournal of the ACM, 1984
- Process algebra for synchronous communicationInformation and Control, 1984
- A general-purpose algorithm for analyzing concurrent programsCommunications of the ACM, 1983