Lecture 5: Other Programming-Language Approaches to Concurrency

Advances in Programming Languages: Lecture 5

In this lecture I presented some alternative techniques for managing concurrency in programming languages, with particular detail on message-passing Actors and the optimistic concurrency of Software Transactional Memory. These are two examples from a wide range of mechanisms in use across many programming languages and applications domains, all of which seek to balance the key concurrency requirements of separation to prevent inconsistency and co-operation to allow interaction.

Link: Slides for Lecture 5


Before the next lecture:

  • Read up about Erlang, its use of actors, supervision, and live code replacement.
  • Find an example of some software / a system / a service / a company that uses the language and where someone has written about that.
  • Post the example to the mailing list apl-students@inf.ed.ac.uk.

I shall collate examples on the blog and in Friday’s lecture.

Here’s a first example:

Erlang and First-Person Shooters: Slides from talk by Malcolm Dowse, DemonWare Malcolm Dowse, Demonware. Erlang and First-Person Shooters — 10s of millions of Call of Duty Black Ops fans loadtest Erlang. Presentation to Erlang Factory, London 2011
Links: Talk slides; Erlang Factory; Erlang Factory conference London 2011

Others from Daniel Hillerström, Kyle Pullicino, and Bilyan Borisov:

Inside Erlang - Blog article from Fast Company Labs Ainsley O’Connell. Inside Erlang, The Rare Programming Language Behind WhatsApp’s Success. Article on Fast Company Labs blog, February 2014.
Links: Article; Daniel’s comments
Christian Colombo, Adrian Francalanza, and Rudolph Gatt. Elarva: A Monitoring Tool for Erlang. Presented at RV 2011: 2nd International Conference on Runtime Verification, San Francisco, September 2011.
Links: Elarva website; Conference paper; Kyle’s comments
simpledb Amazon SimpleDB. Implemented in Erlang, this is a highly-available distributed NoSQL database provided as part of the Amazon Web Services cloud.
Links: Amazon SimpleDB; Wikipedia description; Bilyan’s comments


What is Scala? Article by Martin Odersky Martin Odersky. What is Scala? Web page, version as at 2014-09-30.
Link: http://www.scala-lang.org/what-is-scala.html
Scala Actors. Tutorial by Philipp Haller Philipp Haller. Scala Actors: A Short Tutorial. Web page, version as at 2008-08-28.
Link: http://www.scala-lang.org/old/node/242.html
Practical Lock-Freedom. PhD thesis, Keir Fraser Keir Fraser. Practical Lock-Freedom. PhD thesis, 2004. Technical report 579, University of Cambridge Computer Laboratory.
Links: Cover page; Full PDF; More on lock-freedom

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s