Dataflow architecture is a computer architecture that directly contrasts the traditional von Neumann architecture or control flow architecture. The latter executes instructions sequentially, while the former doesn't have a program counter. A dataflow architecture represents a program as a dataflow graph (DFG), where nodes are "operators" and directed edges between them are the "channels" through which immutable data values travel. An operator is evaluated when data are present on all input channels. The completion of evaluation makes the resulting data available to the operators at the ends of output channels. Thus, the order of operator evaluation is unpredictable, i.e., behavior is nondeterministic.
In order to study the behavior of a DFG we can create a simulator of a dataflow machine. It should be a command line tool. I should be able to specify the DFG (in JS-like language) in a file and then run it:
Dataflow architecture is a computer architecture that directly contrasts the traditional von Neumann architecture or control flow architecture. The latter executes instructions sequentially, while the former doesn't have a program counter. A dataflow architecture represents a program as a dataflow graph (DFG), where nodes are "operators" and directed edges between them are the "channels" through which immutable data values travel. An operator is evaluated when data are present on all input channels. The completion of evaluation makes the resulting data available to the operators at the ends of output channels. Thus, the order of operator evaluation is unpredictable, i.e., behavior is nondeterministic.
In order to study the behavior of a DFG we can create a simulator of a dataflow machine. It should be a command line tool. I should be able to specify the DFG (in JS-like language) in a file and then run it:
The output should look like this:
Simply put, the output should show step by step which data show up on each edge.