Nitpicking C plus plus 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 publicationPPDP 11 - PROCEEDINGS OF THE 2011 SYMPOSIUM ON PRINCIPLES AND PRACTICES OF DECLARATIVE PROGRAMMING
Place of PublicationNEW YORK
PublisherACM
Pages113-123
Number of pages11
ISBN (Print)978-1-4503-0776-5
Publication statusPublished - 2011
Event13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming - Odense, Denmark
Duration: 20 Jul 201122 Jul 2011

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 plus plus Concurrency'. Together they form a unique fingerprint.

Cite this