Declarative Concurrency

We will see that the deep reason why this form of concurrency is so simple is that programs have no observable nondeterminism.A program in the declarative concurrent model always has this property, if the program does not try to bind the same variable to incompatible values. (…) . Another way to say it is that there are no race conditions in a declarative concurrent program. A race condition is just an observable nondeterministic behavior.

(Van Roy and Haridi 2004, 234 chap.4)

The Data-Driven Concurrent Model

Basic Concepts

Our approach to concurrency is a simple extension to the declarative model that allows more than one executing statement to reference the store. Roughly, all these statements are executing "at the same time".

(Van Roy and Haridi 2004, 236 chap.4 section.4.1.1)

Total and Partial Orders

In a sequential program, all computation steps are totally ordered.There are no concurrent steps. In a concurrent program, all computation steps of a given thread are totally ordered. The computation steps of the whole program form a partial order. Two steps in this partial order are causally ordered if the first binds a dataflow variable X and the second needs the value of X.

(Van Roy and Haridi 2004, 238 chap.4 section.4.1.1)

Non-Determinism

References:

Van Roy, Peter, and Seif Haridi. 2004. Concepts, Techniques, and Models of Computer Programming. MIT press.

Backlinks: