@inproceedings{e3353c0bcadb42c9920ceabb337cc137,
title = "Mixing metaphors: Actors as channels and channels as actors",
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 semanticspreserving. 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.",
keywords = "Actors, Channels, Communication-centric Programming Languages",
author = "Simon Fowler and Sam Lindley and Philip Wadler",
year = "2017",
month = jun,
day = "16",
doi = "10.4230/LIPIcs.ECOOP.2017.11",
language = "English",
series = "Leibniz International Proceedings in Informatics (LIPIcs)",
publisher = "Schloss Dagstuhl - Leibniz-Zentrum f{\"u}r Informatik",
editor = "Peter Muller",
booktitle = "31st European Conference on Object-Oriented Programming (ECOOP 2017)",
note = "31st European Conference on Object-Oriented Programming 2017, ECOOP 2017 ; Conference date: 18-06-2017 Through 23-06-2017",
}