Projects per year
Abstract
Channel- and actor-based programming languages are both used in practice, but the two are often confused. Languages such as Go provide anonymous processes which communicate using buffers or rendezvous points—known as channels—while languages such as Erlang provide addressable processes—known as actors—each with a single incoming message queue. The lack of a common representation makes it difficult to reason about translations that exist in the folklore. We define a calculus λch for typed asynchronous channels, and a calculus λact for typed actors. We define translations from λact into λch and λch into λact and prove that both are type- and semantics preserving. We show that our approach accounts for synchronisation and selective receive in actor systems and discuss future extensions to support guarded choice and behavioural types.
Original language | English |
---|---|
Title of host publication | The 31st European Conference on Object-Oriented Programming (ECOOP 2017) |
Publisher | Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany |
Pages | 1-28 |
Number of pages | 28 |
ISBN (Print) | 978-3-95977-035-4 |
DOIs | |
Publication status | Published - 23 Jun 2017 |
Event | 31st European Conference on Object-Oriented Programming - Barcelona, Spain Duration: 18 Jun 2017 → 23 Jun 2017 https://2017.ecoop.org/track/ecoop-2017-papers |
Publication series
Name | Leibniz International Proceedings in Informatics (LIPIcs) |
---|---|
Publisher | Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik |
Volume | 74 |
ISSN (Print) | 1868-8969 |
Conference
Conference | 31st European Conference on Object-Oriented Programming |
---|---|
Abbreviated title | ECOOP 2017 |
Country/Territory | Spain |
City | Barcelona |
Period | 18/06/17 → 23/06/17 |
Internet address |
Fingerprint
Dive into the research topics of 'Mixing Metaphors: Actors as Channels and Channels as Actors'. Together they form a unique fingerprint.Projects
- 1 Finished
-
From Data Types to Session Types - A Basis for Concurrency and Distribution
20/05/13 → 19/11/20
Project: Research