9.5.1 Examples from papers by Gilles Kahn and David B. MacQueen
These demos are examples from papers by Gilles Kahn and David B. MacQueen. The palette is shown in figure
9-3
Kahn74fig2
Produce a stream of 0's and 1's. This demo is from figure 2 in [Kah74].
Kahn77fig3-opt
Sieve of Eratosthenes with non-recursive sift process. This example shows how process networks can change dynamically during execution. The sift process inserts new filter processes to eliminate multiples of newly discovered primes. This demo is from figure 3 in [Kah77].
eratosthenes
Compare this DDF domain demo with the Kahn77fig3-opt demo above.
Kahn77fig4
Produce a sequence of integers of the form 2a3b5c. An unbounded number of tokens accumulate in the communication channels as execution progresses. This demo is from figure 4 in [Kah77].
Kahn77fig4-opt
Produce a sequence of integers of the form 2a3b5c with optimizations to avoid generating duplicate values. An unbounded number of tokens accumulate in the communication channels as execution progresses. This demo is from figure 4 in [Kah77].
Parks95fig3.5
Merge two streams of monotonically increasing integers (multiples of 2 and 3) to produce a stream of monotonically increasing integers with no duplicates. Simple data-driven execution of this example would result in unbounded accumulation of tokens, while demand-driven execution requires that only a small number of tokens be stored on the communication channels. This demo is from figure 3.5 in [Par95].
Parks95fig3.11
Separate a stream of monotonically increasing integers into those values that are and are not evenly divisible by 3. Simple demand-driven execution of this example would result in unbounded accumulation of tokens, while data-driven execution requires that only a small number of tokens be stored on the communication channels. This demo is from figure 3.11 in [Par95].
Parks95fig4.1
Separate an increasing sequence of integers into those values that are and are not evenly divisible by 5, then merge these two streams to reproduce a stream of increasing integers. Simple data-driven or demand-driven execution of this example would result in unbounded accumulation of tokens. This demo is from figure 4.1 in [Par95].