D 2020

Model checking in a development workflow: A study on a concurrent C++ hash table

ROČKAI, Petr

Základní údaje

Originální název

Model checking in a development workflow: A study on a concurrent C++ hash table

Autoři

ROČKAI, Petr (703 Slovensko, garant, domácí)

Vydání

Cham, Workshop on Practical Formal Verification for Software Dependability (AFFORD 2019), od s. 46-60, 15 s. 2020

Nakladatel

Springer International Publishing

Další údaje

Jazyk

angličtina

Typ výsledku

Stať ve sborníku

Obor

10201 Computer sciences, information science, bioinformatics

Stát vydavatele

Švýcarsko

Utajení

není předmětem státního či obchodního tajemství

Forma vydání

tištěná verze "print"

Impakt faktor

Impact factor: 0.402 v roce 2005

Kód RIV

RIV/00216224:14330/20:00116774

Organizační jednotka

Fakulta informatiky

ISBN

978-3-030-54993-0

ISSN

Klíčová slova anglicky

DIVINE; formal verification; model checking; C++; hash table; concurrency

Příznaky

Mezinárodní význam, Recenzováno
Změněno: 31. 10. 2020 02:50, RNDr. Petr Ročkai, Ph.D.

Anotace

V originále

In this paper, we report on our effort to design a fast, concurrent-safe hash table and implement it in C++, correctly. It is especially the latter that is the focus of this paper: concurrent data structures are notoriously hard to implement, and C++ is not known to be a particularly safe language. It however does offer unparalleled performance for the level of programming comfort it offers, especially in our area of interest – parallel workloads with intense interaction. For these reasons, we have enlisted the help of a software model checker (DIVINE) with the ability to directly check the C++ implementation. We discuss how such a heavyweight tool integrated with the engineering effort, what are the current limits of this approach and what kinds of assurances we obtained. Of course, we have applied the standard array of tools throughout the effort – unit testing, an interactive debugger, a memory error checker (valgrind) – in addition to the model checker, which puts us in an excellent position to weigh them against each other and point out where they complement each other.