Nitpicking c++ concurrency

  • Authors:
  • Jasmin Christian Blanchette;Tjark Weber;Mark Batty;Scott Owens;Susmit Sarkar

  • Affiliations:
  • Technische Universität München, Munich, Germany;University of Cambridge, Cambridge, United Kingdom;University of Cambridge, Cambridge, United Kingdom;University of Cambridge, Cambridge, United Kingdom;University of Cambridge, Cambridge, United Kingdom

  • Venue:
  • Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Previous work formalized the C++ memory model in Isabelle/HOL in an effort to clarify the proposed standard's semantics. Here we employ the model finder Nitpick to check litmus test programs that exercise the memory model, including a simple locking algorithm. Nitpick is built on Kodkod (Alloy's backend) but understands Isabelle's richer logic; hence it can be applied directly to the C++ memory model. We only need to give it a few hints, and thanks to the underlying SAT solver it scales much better than the Cppmem explicit-state model checker. This case study inspired optimizations in Nitpick from which other formalizations can now benefit.