World Library  
Flag as Inappropriate
Email this Article


Article Id: WHEBN0000864364
Reproduction Date:

Title: Dataflow  
Author: World Heritage Encyclopedia
Language: English
Subject: Lucid (programming language), BMDFM, SISAL, DataRush Technology, Datastream
Collection: Computer Architecture, Computer Data, Models of Computation
Publisher: World Heritage Encyclopedia


Dataflow is a term used in computing, and may have various shades of meaning.


  • Software architecture 1
  • Hardware architecture 2
  • Concurrency 3
  • See also 4
  • References 5
  • External links 6

Software architecture

Dataflow connecting computational actors into stages (pipelines) that can execute concurrently. Data-flow can also be called Stream processing and Reactive programming.[1] These ideas are all highly inter-related.

There have been multiple data-flow/stream processing languages of various forms (see Stream processing). Data-flow hardware (see Dataflow architecture) is an alternative to the classic Von Neumann architecture. The most obvious example of data-flow programming is the subset known as Reactive programming with spreadsheets. As a user enters new values, they are instantly transmitted to the next logical "actor" or formula for calculation.

Distributed data flows have also been proposed as a programming abstraction that captures the dynamics of distributed multi-protocols. The data-centric perspective characteristic of data flow programming promotes high-level functional style of specifications, and simplifies formal reasoning about system components.

Hardware architecture

Hardware architectures for dataflow was a major topic in Computer architecture research in the 1970s and early 1980s. Jack Dennis of MIT pioneered the field of static dataflow architectures. Designs that use conventional memory addresses as data dependency tags are called static dataflow machines. These machines did not allow multiple instances of the same routines to be executed simultaneously because the simple tags could not differentiate between them. Designs that use Content-addressable memory are called dynamic dataflow machines by Arvind. They use tags in memory to facilitate parallelism. Data flows around the computer through the components of the computer. It gets entered from the input devices and can leave through output devices (printer etc.).


A dataflow network is a network of concurrently executing processes or automata that can communicate by sending data over channels (see message passing.)

In Kahn process networks, named after Gilles Kahn, the processes are determinate. This implies that each determinate process computes a continuous function from input streams to output streams, and that a network of determinate processes is itself determinate, thus computing a continuous function. This implies that the behavior of such networks can be described by a set of recursive equations, which can be solved using fixpoint theory. The movement and transformation of the data is represented by a series of shapes and lines.

See also



External links

  • DataFlow Analytics: Composable Analytics - Flexible Business Intelligence.
  • BMDFM: Binary Modular Dataflow Machine, BMDFM.
  • Cantata: Dataflow Visual Language for image processing.
  • Cells: Dataflow extension to Common Lisp Object System, CLOS.
  • DC: Library that allows the embedding of one-way dataflow constraints in a C/C++ program.
  • Stella: Dataflow Visual Language for dynamic dataflow modeling and simulation.
  • KPASSA : a tool for static-scheduling, performance analysis and optimizations for DataFlow models.
  • Liquid Rebol
  • SDF3 : Performance analysis tool for DataFlow Model
  • Ruby Dataflow : Ruby gem adding Dataflow variable support
  • Acar et al., Adaptive Functional Programming, POPL 2002
  • Scala Dataflow : The Akka toolkit provides (among other things) dataflow concurrency in Scala
  • GPars dataflow : A Groovy and Java concurrency framework
  • Free Data Flow Templates: Free data flow templates for Keynote & PowerPoint presentations
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.