Thu 25 Mar 2021 13:30 - 14:00 at Virtual Space B - Session 8 Chair(s): Simon Fowler
Fri 26 Mar 2021 15:30 - 16:00 at Virtual Space A - Session 16 Chair(s): Theo D'Hondt

The array is a fundamental data structure that provides an efficient way to store and retrieve non-sparse data contiguous in memory. Arrays are important for the performance of many memory-intensive applications due to the design of modern memory hierarchies: contiguous storage facilitates spatial locality and predictive access patterns which enables prefetching. Operations on large arrays often lend themselves well to parallelisation, such as a fork-join style divide-and-conquer algorithm for sorting. For parallel operations on arrays to be deterministic, data-race freedom must be guaranteed. For operations on arrays of primitive data, data-race freedom is obtained by coordinating accesses so that no two threads operate on the same array indices. This is however not enough for arrays of non-primitives due to aliasing: accesses of separate array elements may return pointers to the same object, or overlapping structures. Reference capabilities have been used successfully in the past to statically guarantee the absence of data-races in object-oriented programs. This paper presents the first extension of reference capabilities—called array capabilities—that support concurrent and parallel operations on arrays of both primitive and non-primitive values. In addition to element access, array capabilities support the abstract manipulation of arrays, logical splitting of arrays into subarrays, and merging subarrays. These operations allow expressing a wide range of array use cases. (edited) This paper presents the array capability design space and show how it applies to a number of array use cases. The core ideas are formalised and proven sound in a simple calculus, along with a proof that shows that well-typed programs with array capabilities are free from data-races.

Thu 25 Mar
Times are displayed in time zone: Greenwich Mean Time : Belfast change

13:00 - 14:30
Session 8Research Papers at Virtual Space B
Chair(s): Simon FowlerUniversity of Glasgow
13:00
30m
Live Q&A
Sub-method, partial behavioral reflection with Reflectivity: Looking back on 10 years of use
Research Papers
Steven Costiou INRIA Lille, Vincent AranegaUniversité Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL, Marcus Denker INRIA Lille
DOI Media Attached
13:30
30m
Live Q&A
Reference Capabilities for Safe Parallel Array Programming
Research Papers
Beatrice ÅkerblomStockholm University, Elias CastegrenKTH, Tobias WrigstadUppsala University, Sweden
DOI Media Attached
14:00
30m
Live Q&A
ReactiFi: Reactive Programming of Wi-Fi Firmware on Mobile Devices
Research Papers
Artur SterzPhilipps-Universität Marburg, Matthias Eichholz, Ragnar MogkTechnische Universität Darmstadt, Lars BaumgärtnerTechnische Universität Darmstadt, Pablo Graubner, Matthias Hollick, Mira MeziniTU Darmstadt, Germany, Bernd FreislebenPhilipps-Universität Marburg
DOI Media Attached

Fri 26 Mar
Times are displayed in time zone: Greenwich Mean Time : Belfast change

15:00 - 16:30
Session 16Research Papers at Virtual Space A
Chair(s): Theo D'HondtVrije Universiteit Brussel
15:00
30m
Live Q&A
Using Relational Problems to Teach Property-Based Testing
Research Papers
John WrennBrown University, Tim NelsonBrown University, Shriram KrishnamurthiBrown University, United States
DOI Media Attached
15:30
30m
Live Q&A
Reference Capabilities for Safe Parallel Array Programming
Research Papers
Beatrice ÅkerblomStockholm University, Elias CastegrenKTH, Tobias WrigstadUppsala University, Sweden
DOI Media Attached
16:00
30m
Live Q&A
Lake symbols for island parsing
Research Papers
Katsumi OkudaThe University of Tokyo / Mitsubishi Electric Corporation, Shigeru ChibaThe University of Tokyo
DOI Media Attached