To Learn More
The first requirements for concurrent algorithms arose from systems programming.
For this application, the imperative model of shared memory is the most widely used.
For example, the relation of mutual exclusion and semaphores are used to
manage shared resources. The different low-level mechanisms of managing
processes accessing shared memory are described in [Ari90].
Nonetheless, the possibility of expressing concurrent algorithms in one's
favorite languages makes it possible to investigate this kind of algorithm,
as presented in [And91].
It may be noted that while the concepts of such algorithms can simplify the
solution of certain problems, the production of the corresponding
programs is quite hard work.
The model of synchronous communication presented by CML, and followed
by the Event module, is
fully described in [Rep99].
The online version is at the following address:
Link
http://cm.bell-labs.com/cm/cs/who/jhr/index.html
An interesting example is the threaded graphical library
EXene,
implemented in CML under X-Windows. The preceding link contains a pointer
to this library.