Glossary Concurrency / Term

Control dependencies vs data dependencies

[Control flow vs dataflow (imperative vs declarative)] Dependence analysis is a formal theory for determining ordering constraints between computations, and the theory distinguishes between control and data dependencies, where data dependencies are also known as true dependencies. Dataflow models focus on data dependencies and allow avoiding spurious control dependencies like accidental locking, so dataflow models inherently simplify modeling more concurrent or independent computations.

Despite the advantages of dataflow models, imperative concurrency modeling is more conventional, which can be explained by the more direct correspondence between imperative computational models and machine models, which enables flexibility and, by extension, efficiency. The flexibility comes at a cost of the model being harder to reason about, however, so there is a trend towards the adoption of more declarative models.

Permanent link Control dependencies vs data dependencies - Creation date 2020-09-05

< Concurrent (order-independent) vs sequential Glossary / Concurrency Control flow vs dataflow (imperative vs declarative) >