Digitala Vetenskapliga Arkivet

Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Godot: All the Benefits of Implicit and Explicit Futures
Uppsala University, Disciplinary Domain of Science and Technology, Mathematics and Computer Science, Department of Information Technology, Computing Science. (Programming Languages)ORCID iD: 0000-0001-8654-118X
Storytel, Stockholm, Sweden.ORCID iD: 0000-0002-1970-6607
Univ Lyon, EnsL, UCBL, CNRS, Inria, LIP, France.ORCID iD: 0000-0001-7137-3523
University of Oslo, Norway.ORCID iD: 0000-0001-5382-3949
Show others and affiliations
2019 (English)In: 33rd European Conference on Object-Oriented Programming (ECOOP 2019), 2019Conference paper, Published paper (Refereed)
Abstract [en]

Concurrent programs often make use of futures, handles to the results of asynchronous operations. Futures provide means to communicate not yet computed results, and simplify the implementation of operations that synchronise on the result of such asynchronous operations. Futures can be characterised as implicit or explicit, depending on the typing discipline used to type them. Current future implementations suffer from "future proliferation", either at the type-level or at run-time. The former adds future type wrappers, which hinders subtype polymorphism and exposes the client to the internal asynchronous communication architecture. The latter increases latency, by traversing nested future structures at run-time. Many languages suffer both kinds. Previous work offer partial solutions to the future proliferation problems; in this paper we show how these solutions can be integrated in an elegant and coherent way, which is more expressive than either system in isolation. We describe our proposal formally, and state and prove its key properties, in two related calculi, based on the two possible families of future constructs (data-flow futures and control-flow futures). The former relies on static type information to avoid unwanted future creation, and the latter uses an algebraic data type with dynamic checks. We also discuss how to implement our new system efficiently.

Place, publisher, year, edition, pages
2019.
Series
Leibniz International Proceedings in Informatics (LIPIcs), ISSN 1868-8969 ; 134
National Category
Computer Systems
Research subject
Computer Science
Identifiers
URN: urn:nbn:se:uu:diva-396199DOI: 10.4230/LIPIcs.ECOOP.2019.2ISBN: 978-3-95977-111-5 (print)OAI: oai:DiVA.org:uu-396199DiVA, id: diva2:1366856
Conference
33rd European Conference on Object-Oriented Programming (ECOOP 2019), London, UK, 15-19 july 2019
Available from: 2019-10-31 Created: 2019-10-31 Last updated: 2020-11-18Bibliographically approved
In thesis
1. Abstractions to Control the Future
Open this publication in new window or tab >>Abstractions to Control the Future
2021 (English)Doctoral thesis, comprehensive summary (Other academic)
Abstract [en]

Multicore and manycore computers are the norm nowadays, and users have expectations that their programs can do multiple things concurrently. To support that, developers use concur- rency abstractions such as threads, promises, futures, and/or channels to exchange information. All these abstractions introduce trade-offs between the concurrency model and the language guarantees, and developers accept these trade-offs for the benefits of concurrent programming.

Many concurrent languages are multi-paradigm, e.g., mix the functional and object-oriented paradigms. This is beneficial to developers because they can choose the most suitable approach when solving a problem. From the point of view of concurrency, purely functional programming languages are data-race free since they only support immutable data. Object-oriented languages do not get a free lunch, and neither do multi-paradigm languages that have imperative features.

The main problem is uncontrolled concurrent access to shared mutable state, which may inadvertently introduce data-races. A data-race happens when two concurrent memory operations target the same location, at least one of them is a write, and there is no synchronisation operation involved. Data-races make programs to exhibit (unwanted) non-deterministic behaviour.

The contribution of this thesis is two-fold. First, this thesis introduces new concurrent abstractions in a purely functional, statically typed programming language (Paper I – Paper III); these abstractions allow developers to write concurrent control- and delegation-based patterns. Second, this thesis introduces a capability-based dynamic programming model, named Dala, that extends the applicability of the concurrent abstractions to an imperative setting while maintaining data-race freedom (Paper IV). Developers can also use the Dala model to migrate unsafe programs, i.e., programs that may suffer data-races, to data-race free programs.

Place, publisher, year, edition, pages
Uppsala: Acta Universitatis Upsaliensis, 2021. p. 85
Series
Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology, ISSN 1651-6214 ; 1986
Keywords
concurrent, programming, type system, future, actors, active objects
National Category
Computer Systems
Research subject
Computer Science
Identifiers
urn:nbn:se:uu:diva-425128 (URN)978-91-513-1062-6 (ISBN)
Public defence
2021-01-18, Room 2446, ITC, Lägerhyddsvägen 2, hus 2, Uppsala, 16:00 (English)
Opponent
Supervisors
Available from: 2020-12-21 Created: 2020-11-18 Last updated: 2021-01-25

Open Access in DiVA

Godot-ECOOP19(2156 kB)433 downloads
File information
File name FULLTEXT01.pdfFile size 2156 kBChecksum SHA-512
de64e44b6fbe746d30090e863b588479e8a28cda3cf57caa3f99057984bee2ef20a9b2ea2f106ef19ae8ba7296a330ff4b012275b25372d23417df8d0cd53add
Type fulltextMimetype application/pdf

Other links

Publisher's full texthttp://drops.dagstuhl.de/opus/volltexte/2019/10794

Search in DiVA

By author/editor
Fernandez-Reyes, KikoClarke, DaveHenrio, LudovicJohnsen, Einar BrochWrigstad, Tobias
By organisation
Computing Science
Computer Systems

Search outside of DiVA

GoogleGoogle Scholar
Total: 433 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 240 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf