License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2017.11
URN: urn:nbn:de:0030-drops-72536
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2017/7253/
Go to the corresponding LIPIcs Volume Portal


Fowler, Simon ; Lindley, Sam ; Wadler, Philip

Mixing Metaphors: Actors as Channels and Channels as Actors

pdf-format:
LIPIcs-ECOOP-2017-11.pdf (0.7 MB)


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
lambda-ch for typed asynchronous channels, and a calculus lambda-act for
typed actors. We define translations from lambda-act into lambda-ch and
lambda-ch into lambda-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.

BibTeX - Entry

@InProceedings{fowler_et_al:LIPIcs:2017:7253,
  author =	{Simon Fowler and Sam Lindley and Philip Wadler},
  title =	{{Mixing Metaphors: Actors as Channels and Channels as Actors}},
  booktitle =	{31st European Conference on Object-Oriented Programming (ECOOP 2017)},
  pages =	{11:1--11:28},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-035-4},
  ISSN =	{1868-8969},
  year =	{2017},
  volume =	{74},
  editor =	{Peter M{\"u}ller},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2017/7253},
  URN =		{urn:nbn:de:0030-drops-72536},
  doi =		{10.4230/LIPIcs.ECOOP.2017.11},
  annote =	{Keywords: Actors, Channels, Communication centric Programming Languages}
}

Keywords: Actors, Channels, Communication centric Programming Languages
Collection: 31st European Conference on Object-Oriented Programming (ECOOP 2017)
Issue Date: 2017
Date of publication: 16.06.2017


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI