Functional approaches to teaching concurrency | IEEE Conference Publication | IEEE Xplore

Functional approaches to teaching concurrency


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 More

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.
Date of Conference: 23-26 October 2013
Date Added to IEEE Xplore: 19 December 2013
Electronic ISBN:978-1-4673-5261-1

ISSN Information:

Conference Location: Oklahoma City, OK, USA

Contact IEEE to Subscribe

References

References is not available for this document.