VeriCool: An Automatic Verifier for a Concurrent Object-Oriented Language

  • Authors:
  • Jan Smans;Bart Jacobs;Frank Piessens

  • Affiliations:
  • Katholieke Universiteit Leuven, Belgium;Katholieke Universiteit Leuven, Belgium;Katholieke Universiteit Leuven, Belgium

  • Venue:
  • FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Reasoning about object-oriented programs is hard, due to aliasing, dynamic binding and the need for data abstraction and framing. Reasoning about concurrentobject-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.