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

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 publicationProceedings of the 2011 Symposium on Prinicples and Practices of Declarative Programming (PDP'11)
Place of PublicationNew York, NY
PublisherACM
Pages113-123
Number of pages11
ISBN (Print)9781450307765
DOIs
Publication statusPublished - 20 Jul 2011
Event13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming - 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
Country/TerritoryDenmark
CityOdense
Period20/07/1122/07/11

Keywords

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

Fingerprint

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

Cite this