Abstract : In many actor-based programming models, asynchronous method calls communicate their results using futures, where the fulfilment occurs under-the-hood. Promises play a similar role to futures, except that they must be explicitly created and explicitly fulfilled; this makes promises more flexible than futures, though promises lack fulfilment guarantees: they can be fulfilled once, multiple times or not at all. Unfortunately, futures are too rigid to exploit many available concurrent and parallel patterns. For instance, many computations block on a future to get its result only to return that result immediately (to fulfil their own future). To make futures more flexible, we explore a construct, forward, that delegates the responsibility for fulfilling the current implicit future to another computation. Forward reduces synchronisation and gives futures promise-like capabilities. This paper presents a formalisation of the forward construct, defined in a high-level source language, and a compilation strategy from the high-level language to a low-level, promised-based target language. The translation is shown to preserve semantics. Based on this foundation, we describe the implementation of forward in the parallel, actor-based language Encore, which compiles to C.
https://hal.inria.fr/hal-01821490 Contributor : Hal IfipConnect in order to contact the contributor Submitted on : Friday, June 22, 2018 - 2:55:41 PM Last modification on : Friday, June 22, 2018 - 3:09:23 PM Long-term archiving on: : Wednesday, September 26, 2018 - 12:12:08 AM
Kiko Fernandez-Reyes, Dave Clarke, Elias Castegren, Huu-Phuc Vo. Forward to a Promising Future. 20th International Conference on Coordination Languages and Models (COORDINATION), Jun 2018, Madrid, Spain. pp.162-180, ⟨10.1007/978-3-319-92408-3_7⟩. ⟨hal-01821490⟩