This comprehensive note is an
introduction to concurrent programming using the ERLANG language, well suited
for developing robust applications. It starts with a tutorial on ERLANG basics,
introducing the reader to sequential programming concepts and use of lists and
tuples. Concurrent and distributed programming is at the very core, detailing
strategies for managing multiple processes effectively. It is underlined that
good error handling should be achieved and best programming practice performed
to create a more robust application, and therefore developers can gracefully
handle their problems. This note also puts emphasis on functions and standard
libraries that are built in and enhanced the functionality of ERLANG. This
resource is invaluable for any programmer who needs to take advantage of the
best features of ERLANG in concurrent programming through the presentation of
different applications and discussion on common errors in ERLANG.
Author(s): Computer Science Laboratory, Ericsson
Telecommunications Systems Laboratories
These notes provide a detailed expositions on advanced topics in
concurrent programming; these are focused both on theoretical foundations as
well as on practical applications of shared-variable programming. Among the
various aspects treated are mutual exclusion techniques (such as Petersen's
algorithm) and, of course, synchronization methods such as semaphores and
monitors. The introduction of paradigms in distributed programming is also
covered by means of remote procedure calls (RPC), as well as transactional
memory, among other things. The module covers the proof outline logic of
concurrent programs that allow for a rigorous approach toward understanding the
correctness of concurrent systems. As graduate-level study notes perfect for
anyone interested in comprehending concurrency in software development at a
deeper level than usual, they provide an excellent approach toward understanding
the reasoning of designs and also toward verifying critical properties in
concurrent systems.
This resource is aimed
primarily at explicit concurrency, where a programmer explicitly declares the
concurrent behavior within the code. It explains the nature and properties of
concurrent programs as well as the issues that arise during execution and how to
build such programs efficiently. The text also considers performance-oriented
concurrency-that is, the way to exploit a certain capability of hardware in
order to realize an increase of efficiency of a program. This material, by
taking common applications as a look and common problems present in concurrent
programming, acts as a basic guide for anyone interested in knowing the design
and implementation of robust concurrent systems.