VeriCool: An Automatic Verifier for a Concurrent Object-Oriented Language. Reasoning about object-oriented programs is hard, due to aliasing, dynamic binding and the need for data abstraction and framing. Reasoning about concurrent object-oriented programs is even harder, since in general interference by other threads has to be taken into account at each program point. In this paper, we propose an approach to the automatic verification of concurrent Java-like programs. The cornerstone of the approach is a programming model, a set of rules, which limits thread inference to synchronization points such that one can reason sequentially about most code. In particular, programs conforming to the programming model are guaranteed to be data race free. Compared to previous incarnations of the programming model, our approach is more flexible in describing the set of memory locations protected by an object’s lock. In addition, we combine the model with an approach for data abstraction and framing based on dynamic frames. To the best of our knowledge, this is the first paper combining dynamic frames and concurrency. We implemented the approach in a tool, called VeriCool, and used it to verify several small concurrent programs.
Keywords for this software
References in zbMATH (referenced in 7 articles )
Showing results 1 to 7 of 7.
- Ferrara, Pietro; Müller, Peter: Automatic inference of access permissions (2012)
- Hatcliff, John; Leavens, Gary T.; Leino, K.Rustan M.; Müller, Peter; Parkinson, Matthew: Behavioral interface specification languages (2012)
- Fähndrich, Manuel; Logozzo, Francesco: Static contract checking with abstract interpretation (2011)
- Kassios, I.T.: The dynamic frames theory (2011)
- Kreiker, Jörg; Seidl, Helmut; Vojdani, Vesal: Shape analysis of low-level C with overlapping structures (2010)
- Leino, K.Rustan M.: Dafny: an automatic program verifier for functional correctness (2010)
- de Boer, F.S.: A shared-variable concurrency analysis of multi-threaded object-oriented programs (2009)