Abstract specifications for concurrent maps
File(s)main.pdf (655.77 KB)
Accepted version
Author(s)
Xiong, S
da Rocha Pinto, P
Ntzik, G
Gardner, P
Type
Conference Paper
Abstract
Despite recent advances in reasoning about concurrent data
structure libraries, the largest implementations in
java.util.concurrent
have yet to be verified. The key issue lies in the development of modular
specifications, which provide clear logical boundaries between clients and
implementations. A solution is to use recent advances in fine-grained con-
currency reasoning, in particular the introduction of
abstract atomicity
to concurrent separation logic reasoning. We present two specifications
of concurrent maps, both providing the clear boundaries we seek. We
show that these specifications are equivalent, in that they can be built
from each other. We show how we can verify client programs, such as a
concurrent set and a producer-consumer client. We also give a substan-
tial first proof that the main operations of
ConcurrentSkipListMap
in
java.util.concurrent
satisfy the map specification. This work demon-
strates that we now have the technology to verify the largest implemen-
tations in
java.util.concurrent
.
structure libraries, the largest implementations in
java.util.concurrent
have yet to be verified. The key issue lies in the development of modular
specifications, which provide clear logical boundaries between clients and
implementations. A solution is to use recent advances in fine-grained con-
currency reasoning, in particular the introduction of
abstract atomicity
to concurrent separation logic reasoning. We present two specifications
of concurrent maps, both providing the clear boundaries we seek. We
show that these specifications are equivalent, in that they can be built
from each other. We show how we can verify client programs, such as a
concurrent set and a producer-consumer client. We also give a substan-
tial first proof that the main operations of
ConcurrentSkipListMap
in
java.util.concurrent
satisfy the map specification. This work demon-
strates that we now have the technology to verify the largest implemen-
tations in
java.util.concurrent
.
Date Issued
2017-04-19
Date Acceptance
2016-12-17
Citation
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2017, pp.964-990
ISBN
9783662544341
Publisher
Springer Berlin Heidelberg
Start Page
964
End Page
990
Journal / Book Title
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Copyright Statement
2017, Copyright the authors
Sponsor
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Grant Number
EP/K008528/1 - RG65358
EP/K008528/1
EP/H008373/1
EP/H008373/1
Source
26th European Symposium on Programming, ESOP 2017
Subjects
Artificial Intelligence & Image Processing
Publication Status
Published
Start Date
2017-04-22
Finish Date
2017-04-29