Download PDFOpen PDF in browser

Forward to a Promising Future

EasyChair Preprint no. 113

19 pagesDate: May 6, 2018


In many actor-based programming models, asynchronous method calls communicate their results using future, 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.

Keyphrases: Actor-based Programming, bisimulation, compilation strategy, Computer Science, concurrency, futures, parallelism, promises, reduction rule, task-based programming, type system

BibTeX entry
BibTeX does not have the right entry for preprints. This is a hack for producing the correct reference:
  author = {Kiko Fernandez-Reyes and Dave Clarke and Elias Castegren and Huu-Phuc Vo},
  title = {Forward to a Promising Future},
  howpublished = {EasyChair Preprint no. 113},
  doi = {10.29007/nm5t},
  year = {EasyChair, 2018}}
Download PDFOpen PDF in browser