Nitpicking C++ Concurrency

Jasmin Christian Blanchette, Tjark Weber, Mark Batty, Scott Owens, and Susmit Sarkar. In Peter Schneider-Kamp and Michael Hanus, editors, Proceedings of the 13th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, July 20-22, 2011, Odense, Denmark, pages 113-124. ACM, 2011.

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.

Download

BibTeX

@inproceedings{blanchette11nitpicking,
  author    = {Jasmin Christian Blanchette and Tjark Weber and Mark Batty and Scott Owens and Susmit Sarkar},
  title     = {Nitpicking {C++} Concurrency},
  editor    = {Peter Schneider-Kamp and Michael Hanus},
  booktitle = {Proceedings of the 13th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, July~20-22, 2011, Odense, Denmark},
  pages     = {113--124},
  publisher = {ACM},
  url       = {http://doi.acm.org/10.1145/2003476.2003493},
  year      = {2011}
}

Last modified: 2011-12-08