‹Programming› 2022
Mon 11 - Thu 14 April 2022
Thu 24 Mar 2022 14:30 - 15:00 at Auditorium Nobre - Concurrency & Synchronization Chair(s): Ademar Aguiar
Tue 12 Apr 2022 07:15 - 07:40 at Virtual Space - ‹Programming› Online Tuesday Chair(s): Theo D'Hondt

A future is an entity representing the result of an ongoing computation. A synchronisation with a “get” operation blocks the caller until the computation is over, to return the corresponding value. When a computation in charge of fulfilling a future delegates part of its processing to another task, mainstream languages return nested futures, and several “get” operations are needed to retrieve the computed value (we call such futures “control-flow futures”). Several approaches were proposed to tackle this issues: the “forward” construct, that allows the programmer to make delegation explicit and avoid nested futures, and “data-flow explicit futures” which natively collapse nested futures into plain futures.

This paper supports the claim that data-flow explicit futures form a powerful set of language primitives, on top of which other approaches can be built. We prove the equivalence, in the context of data-flow explicit futures, between the “forward” construct and classical “return” from functions. The proof relies on a branching bisimulation between a program using “forward” and its “return” counterpart. This result allows language designers to consider “forward” as an optimisation directive rather than as a language primitive.

Following the principles of the Godot system, we provide a library implementation of control-flow futures, based on data-flow explicit futures implemented in the compiler. This small library supports the claim that the implementation of classical futures based on data-flow ones is easier than the opposite. Our benchmarks show the viability of the approach from a performance point of view.

Thu 24 Mar

Displayed time zone: Lisbon change

13:30 - 15:00
Concurrency & SynchronizationResearch Papers at Auditorium Nobre
Chair(s): Ademar Aguiar FEUP, Universidade do Porto
13:30
30m
Talk
Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record & ReplayVol. 5
Research Papers
Dominik Aumayr Johannes Kepler University Linz, Austria, Stefan Marr University of Kent, Sophie Kaleba University of Kent, Elisa Gonzalez Boix Vrije Universiteit Brussel, Belgium, Hanspeter Mössenböck JKU Linz
Link to publication DOI
14:00
30m
Talk
Path-Sensitive Atomic Commit: Local Coordination Avoidance for Distributed TransactionsVol. 5
Research Papers
Tim Soethout ING Bank; CWI, Tijs van der Storm CWI; University of Groningen, Jurgen Vinju CWI; Eindhoven University of Technology
Link to publication DOI
14:30
30m
Research paper
An Optimised Flow for Futures: From Theory to PracticeVol. 6
Research Papers
Link to publication

Tue 12 Apr

Displayed time zone: Lisbon change

06:00 - 09:00
‹Programming› Online TuesdayResearch Papers / at Virtual Space
Chair(s): Theo D'Hondt Vrije Universiteit Brussel
06:00
25m
Talk
Day 2 Opening | Bitrot Revisited: Local First Software and Orthogonal Synchronization
06:25
25m
Research paper
A Transient Semantics for Typed RacketVol. 6
Research Papers
Ben Greenman Brown University, Lukas Lazarek Northwestern University, Christos Dimoulas PLT @ Northwestern University, Matthias Felleisen Northeastern University
Link to publication
06:50
25m
Research paper
A Functional Programming Language with VersionsVol. 6
Research Papers
Yudai Tanabe Tokyo Institute of Technology, Luthfan Anshar Lubis , Tomoyuki Aotani Tokyo Institute of Technology, Hidehiko Masuhara Tokyo Institute of Technology
Link to publication
07:15
25m
Research paper
An Optimised Flow for Futures: From Theory to PracticeVol. 6
Research Papers
Link to publication