Using shape analysis to reduce finite-state models of concurrent Java programs
- 1 January 2000
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 9 (1) , 51-93
- https://doi.org/10.1145/332740.332741
Abstract
Finite-state verification (e.g., model checking) provides a powerful means to detect concurrency errors, which are often subtle and difficult to reproduce. Nevertheless, widespread use of this technology by developers is unlikely until tools provide automated support for extracting the required finite-state models directly from program source. Unfortunately, the dynamic features of modern languages such as Java complicate the construction of compact finite-state models for verification. In this article, we show how shape analysis, which has traditionally been used for computing alias information in optimizers, can be used to greatly reduce the size of finite-state models of concurrent Java programs by determining which heap-allocated variables are accessible only by a single thread, and which shared variables are protected by locks. We also provide several other state-space reductions based on the semantics of Java monitors. A prototype of the reductions demonstrates their effectiveness.Keywords
This publication has 22 references indexed in Scilit:
- Model checking JAVA programs using JAVA PathFinderInternational Journal on Software Tools for Technology Transfer, 2000
- Verifying systems with integer constraints and Boolean predicatesACM SIGSOFT Software Engineering Notes, 1998
- Constructing compact models of concurrent Java programsACM SIGSOFT Software Engineering Notes, 1998
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Elements of styleACM SIGSOFT Software Engineering Notes, 1996
- Compositional verification by model checking for counter-examplesACM SIGSOFT Software Engineering Notes, 1996
- Evaluating deadlock detection methods for concurrent softwareIEEE Transactions on Software Engineering, 1996
- Using state space reduction methods for deadlock analysis in Ada taskingACM SIGSOFT Software Engineering Notes, 1993
- Integrated concurrency analysis in a software development enviornmentACM SIGSOFT Software Engineering Notes, 1989
- Basic notions of trace theoryPublished by Springer Nature ,1989