Abstract:
Traditional approaches to addressing issues of concurrency rely on mechanisms added to standard imperative languages such as Java, such as “synchronized” methods and bloc...Show MoreMetadata
Abstract:
Traditional approaches to addressing issues of concurrency rely on mechanisms added to standard imperative languages such as Java, such as “synchronized” methods and blocks, combined with a “wait/notify” mechanism used to block and awaken processes when a shared resource is not in an acceptable state. The problem with this approach, however, is that mutable state is potentially accessible via many paths, and each such path must be analyzed for possible race conditions, deadlocks, and safety violations.The root cause of many concurrency problems is attributable to shared, mutable state. In light of this, two approaches to mitigating concurrency problems are immutable variables and state isolation within distinct concurrent actors. Erlang, a language developed at Ericsson for distributed, fault-tolerant switches, is a language supporting both approaches. This paper reports on an experiment to include Erlang as part of an existing course on concurrent systems design. This version of the course is currently underway, and the Erlang material is being introduced as this is written. Results from the approach will be ready well before the conference, and should serve as an inspiration (or warning) to others considering such a change.
Published in: 2013 IEEE Frontiers in Education Conference (FIE)
Date of Conference: 23-26 October 2013
Date Added to IEEE Xplore: 19 December 2013
Electronic ISBN:978-1-4673-5261-1