License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2016.5
URN: urn:nbn:de:0030-drops-60998
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2016/6099/
Castegren, Elias ;
Wrigstad, Tobias
Reference Capabilities for Concurrency Control
Abstract
The proliferation of shared mutable state in object-oriented
programming complicates software development as two seemingly
unrelated operations may interact via an alias and produce
unexpected results. In concurrent programming this manifests itself as data-races. Concurrent object-oriented programming further suffers from the fact that code that warrants synchronisation cannot easily be distinguished from code that does not. The burden is placed solely on the programmer to reason about alias freedom, sharing across threads and side-effects to deduce where and when to apply concurrency control, without inadvertently blocking parallelism.
This paper presents a reference capability approach to concurrent
and parallel object-oriented programming where all uses of
aliases are guaranteed to be data-race free. The static type of
an alias describes its possible sharing without using explicit
ownership or effect annotations. Type information can express
non-interfering deterministic parallelism without dynamic
concurrency control, thread-locality, lock-based schemes, and
guarded-by relations giving multi-object atomicity to nested data
structures. Unification of capabilities and traits allows
trait-based reuse across multiple concurrency scenarios with
minimal code duplication. The resulting system brings together
features from a wide range of prior work in a unified way.
BibTeX - Entry
@InProceedings{castegren_et_al:LIPIcs:2016:6099,
author = {Elias Castegren and Tobias Wrigstad},
title = {{Reference Capabilities for Concurrency Control}},
booktitle = {30th European Conference on Object-Oriented Programming (ECOOP 2016)},
pages = {5:1--5:26},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-014-9},
ISSN = {1868-8969},
year = {2016},
volume = {56},
editor = {Shriram Krishnamurthi and Benjamin S. Lerner},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2016/6099},
URN = {urn:nbn:de:0030-drops-60998},
doi = {10.4230/LIPIcs.ECOOP.2016.5},
annote = {Keywords: Type systems, Capabilities, Traits, Concurrency, Object-Oriented}
}
Keywords: |
|
Type systems, Capabilities, Traits, Concurrency, Object-Oriented |
Collection: |
|
30th European Conference on Object-Oriented Programming (ECOOP 2016) |
Issue Date: |
|
2016 |
Date of publication: |
|
18.07.2016 |