<?xml version="1.0" encoding="UTF-8"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2026-07-20T11:57:09Z</responseDate>
  <request identifier="6099" metadataPrefix="oai_dc" verb="GetRecord">https://drops.dagstuhl.de/oai</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:drops-oai.dagstuhl.de:6099</identifier>
        <datestamp>2024-03-06T10:37:59Z</datestamp>
        <setSpec>ddc:004</setSpec>
        <setSpec>open_access</setSpec>
      </header>
      <metadata>
        <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:title>Reference Capabilities for Concurrency Control</dc:title>
          <dc:creator>Castegren, Elias</dc:creator>
          <dc:creator>Wrigstad, Tobias</dc:creator>
          <dc:subject>Type systems</dc:subject>
          <dc:subject>Capabilities</dc:subject>
          <dc:subject>Traits</dc:subject>
          <dc:subject>Concurrency</dc:subject>
          <dc:subject>Object-Oriented</dc:subject>
          <dc:description>The proliferation of shared mutable state in object-oriented&#13;
programming complicates software development as two seemingly&#13;
unrelated operations may interact via an alias and produce&#13;
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.&#13;
&#13;
This paper presents a reference capability approach to concurrent&#13;
and parallel object-oriented programming where all uses of&#13;
aliases are guaranteed to be data-race free. The static type of&#13;
an alias describes its possible sharing without using explicit&#13;
ownership or effect annotations. Type information can express&#13;
non-interfering deterministic parallelism without dynamic&#13;
concurrency control, thread-locality, lock-based schemes, and&#13;
guarded-by relations giving multi-object atomicity to nested data&#13;
structures. Unification of capabilities and traits allows&#13;
trait-based reuse across multiple concurrency scenarios with&#13;
minimal code duplication. The resulting system brings together&#13;
features from a wide range of prior work in a unified way.</dc:description>
          <dc:publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</dc:publisher>
          <dc:contributor>Elias Castegren and Tobias Wrigstad</dc:contributor>
          <dc:date>2016</dc:date>
          <dc:relation>Is Part Of LIPIcs, Volume 56, 30th European Conference on Object-Oriented Programming (ECOOP 2016)</dc:relation>
          <dc:type>InProceedings</dc:type>
          <dc:type>Text</dc:type>
          <dc:type>doc-type:ResearchArticle</dc:type>
          <dc:type>publishedVersion</dc:type>
          <dc:format>application/pdf</dc:format>
          <dc:identifier>doi:10.4230/LIPIcs.ECOOP.2016.5</dc:identifier>
          <dc:identifier>urn:nbn:de:0030-drops-60998</dc:identifier>
          <dc:identifier>https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2016.5</dc:identifier>
          <dc:language>eng</dc:language>
          <dc:rights>https://creativecommons.org/licenses/by/3.0/legalcode</dc:rights>
        </oai_dc:dc>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
