|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
ASHCROFT, E. AND MANNA, Z. 1971. Formalization of properties of parallel programs. Mach. Intell. 6, 1, 17-41.
|
| |
2
|
|
 |
3
|
|
 |
4
|
|
| |
5
|
BURCH, J. R., CLARKE, E. M., MCMILLAN, K. L., DILL, D. L., AND HWANG, L.J. 1990. Symbolic model checking: 1020 states and beyond. In Proceedings of the 5th Annual IEEE Symposium on Logic in Computer Science (LICS '90, June), IEEE Press, Piscataway, NJ, 428-439.
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
| |
9
|
|
| |
10
|
|
 |
11
|
|
 |
12
|
|
| |
13
|
|
 |
14
|
|
 |
15
|
|
 |
16
|
Matthew B. Dwyer , George S. Avrunin , James C. Corbett, Patterns in property specifications for finite-state verification, Proceedings of the 21st international conference on Software engineering, p.411-420, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302672]
|
| |
17
|
|
| |
18
|
|
| |
19
|
HATCLIFF, J., CORBETT, J. C., DWYER, M. B., SOKOLOWSKI, S., AND ZHENG, H. 1999. A formal study of slicing for multi-threaded programs with JVM concurrency primitives. Tech. Rep. KSU CIS TR 99-6. Kansas State Univ., Manhattan, KS.
|
| |
20
|
|
| |
21
|
HAVELUND, K. AND PRESSBURGER, T. 2000. Model checking Java programs using Java PathFinder. Int. J. Softw. Tools Tech. Transfer. To be published.
|
| |
22
|
|
 |
23
|
|
| |
24
|
IOSIF, R., DEMARTINI, C., AND SISTO, R. 1998. Modeling and validation of Java multithreaded applications using SPIN. In Proceedings of the 4th SPIN Workshop (Paris, France, Nov.),
|
 |
25
|
|
 |
26
|
|
| |
27
|
|
 |
28
|
|
| |
29
|
|
| |
30
|
MASTICOLA, S. P. AND RYDER, B. G. 1990. Static infinite wait anomaly detection in polynomial time. In Proceedings of the International Conference on Parallel Processing, 78-87.
|
| |
31
|
|
| |
32
|
|
| |
33
|
|
 |
34
|
Gleb Naumovich , George S. Avrunin , Lori A. Clarke, Data flow analysis for checking properties of concurrent Java programs, Proceedings of the 21st international conference on Software engineering, p.399-410, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302663]
|
| |
35
|
|
 |
36
|
|
| |
37
|
|
| |
38
|
VERMEULEN, A. 1997. Java deadlock. Dr. Dobb's J. 22.
|
 |
39
|
Wei Jen Yeh , Michal Young, Compositional reachability analysis using process algebra, Proceedings of the symposium on Testing, analysis, and verification, p.49-59, October 08-10, 1991, Victoria, British Columbia, Canada
[doi> 10.1145/120807.120812]
|
 |
40
|
|
|