Projects per year
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.
|Title of host publication||The 31st European Conference on Object-Oriented Programming (ECOOP 2017)|
|Publisher||Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany|
|Number of pages||28|
|Publication status||Published - 23 Jun 2017|
|Event||31st European Conference on Object-Oriented Programming - Barcelona, Spain|
Duration: 18 Jun 2017 → 23 Jun 2017
|Name||Leibniz International Proceedings in Informatics (LIPIcs)|
|Publisher||Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik|
|Conference||31st European Conference on Object-Oriented Programming|
|Abbreviated title||ECOOP 2017|
|Period||18/06/17 → 23/06/17|
FingerprintDive into the research topics of 'Mixing Metaphors: Actors as Channels and Channels as Actors'. Together they form a unique fingerprint.
- 1 Finished