Richard Beton's libcsp... |
Communicating Sequential Processes is a mathematical algebra for analysing the behaviour of concurrent systems. Because most software systems interact with the real world, they are concurrent to a greater or lesser extent.
libcsp is a library that provides for C programmers a level of
abstraction that makes programming with threads much easier. By
providing an easy mechanism to express and reason about programs
with multiple threads, it becomes easier to fit software into the
real world.
In essence, libcsp is a C library that provides the benefits
previously known to occam
programmers:
occam
and unlike CSP itself, senders cannot
alternate between output sources (this would cause serious
implementation problems and is provably not necessary).So the two most important points are that the concept enables mathematical proofs of correct thread behaviour, and alternation makes for simple system design.