Stage: exploring erlang style concurrency in ruby

  • Authors:
  • Jonathan Sillito

  • Affiliations:
  • University of Calgary, Calgary, AB, Canada

  • Venue:
  • Proceedings of the 1st international workshop on Multicore software engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper introduces Stage, a Ruby implementation of Actors inspired by the concurrency support in the Erlang programming language. This implementation demonstrates how dynamic language features can be used to implement convenient and expressive concurrency support. Stage has several interesting features that contribute to this expressiveness, including: (1) pattern based support for receiving and handling messages using method calls and blocks, (2) a specialized form of predicate dispatch based on pattern matching for messages that supports overriding and the dynamic addition of alternatives, (3) support for a simple convention based dispatching of messages, and (4) techniques for extending the predicate dispatch to also consider an actor's state. This paper also provides several examples which illustrate how Stage can be used to effectively express concurrent problems.