Structured Concurrent Programming
Distributed concurrent programming, such as that found in applications like
airline reservation systems and other wide-area computing applications, face a
number of issues, like persistent storage management, sequential computational
logic for performing computations, and the orchestration of those computations.
We introduce the language Orc for orchestrating the calculations. Orc has 3
combinators: symmetric composition, pipes, and asymmetric parallel composition.
We demonstrate how other concurrent programming features such as fork-join
parallelism, the interrupt, and time-out can be written in Orc. And we
investigate the semantics of Orc: we show which laws of Kleene Algebra hold and
don't hold, provide inference rules, and discuss executions and traces.