Nitpicking C++ concurrency

Jasmin Christian Blanchette*, Tjark Weber, Mark Batty, Scott Owens, Susmit Sarkar

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution

31 Citations (Scopus)

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.

Original languageEnglish
Title of host publicationPPDP'11 - Proceedings of the 2011 Symposium on Principles and Practices of Declarative Programming
Pages113-123
Number of pages11
DOIs
Publication statusPublished - 2011
Event13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, PPDP 2011 - Odense, Denmark
Duration: 20 Jul 201122 Jul 2011

Publication series

NamePPDP'11 - Proceedings of the 2011 Symposium on Principles and Practices of Declarative Programming

Conference

Conference13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, PPDP 2011
Country/TerritoryDenmark
CityOdense
Period20/07/1122/07/11

Keywords

  • C++ memory model
  • Concurrency
  • Higher-order logic
  • Isabelle/HOL
  • Kodkod
  • Model finding
  • Nitpick
  • SAT solving

Fingerprint

Dive into the research topics of 'Nitpicking C++ concurrency'. Together they form a unique fingerprint.

Cite this