Mixing Metaphors: Actors as Channels and Channels as Actors

Fowler, S. , Lindley, S. and Wadler, P. (2017) Mixing Metaphors: Actors as Channels and Channels as Actors. In: 31st European Conference on Object-Oriented Programming (ECOOP 2017), Barcelona, Spain, 18-23 Jun 2017, p. 11. ISBN 9783959770354 (doi: 10.4230/LIPIcs.ECOOP.2017.11)

[img] Text
223076.pdf - Published Version
Available under License Creative Commons Attribution.



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.

Item Type:Conference Proceedings
Additional Information:This work was supported by EPSRC grants EP/L01503X/1 (University of Edinburgh CDT in Pervasive Parallelism) and EP/K034413/1 (A Basis for Concurrency and Distribution).
Glasgow Author(s) Enlighten ID:Fowler, Dr Simon
Authors: Fowler, S., Lindley, S., and Wadler, P.
College/School:College of Science and Engineering > School of Computing Science
Copyright Holders:Copyright © 2017 Simon Fowler, Sam Lindley, and Philip Wadler
First Published:First published in Proceedings of the 31st European Conference on Object-Oriented Programming (ECOOP 2017): 11
Publisher Policy:Reproduced under a Creative Commons License

University Staff: Request a correction | Enlighten Editors: Update this record