Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Dataflow programming
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== A pioneer dataflow language was BLOck DIagram ([[BLODI]]), published in 1961 by [[John Larry Kelly, Jr.]], Carol Lochbaum and [[Victor A. Vyssotsky]] for specifying [[sampled data systems]].<ref name="Kelly1961">{{Cite journal|journal=Bell System Tech. J.|title=A block diagram compiler|author1=John L. Kelly Jr. |author2=Carol Lochbaum |author3=V. A. Vyssotsky |volume=40|issue=3|year=1961|pages=669β678|doi=10.1002/j.1538-7305.1961.tb03236.x}}</ref> A BLODI specification of functional units (amplifiers, adders, delay lines, etc.) and their interconnections was compiled into a single loop that updated the entire system for one clock tick. In a 1966 Ph.D. thesis, ''The On-line Graphical Specification of Computer Procedures'',<ref name="sutherland1966">{{cite thesis |last= Sutherland |first= William Robert |author-link=Bert Sutherland |date= January 1966 |title= The on-line graphical specification of computer procedures |publisher= [[Massachusetts Institute of Technology|MIT]] |hdl= 1721.1/13474 |type= PhD thesis |url= https://dspace.mit.edu/handle/1721.1/13474 |access-date=2022-08-25}}</ref> [[Bert Sutherland]] created one of the first graphical dataflow programming frameworks in order to make parallel programming easier. Subsequent dataflow languages were often developed at the large [[supercomputer]] labs. POGOL, an otherwise conventional data-processing language developed at [[NSA]], compiled large-scale applications composed of multiple file-to-file operations, e.g. merge, select, summarize, or transform, into efficient code that eliminated the creation of or writing to intermediate files to the greatest extent possible.<ref>{{Cite conference | book-title=POPL '73: Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages | author=Gloria Lambert | title=Large scale file processing: POGOL | publisher=[[Association for Computing Machinery|ACM]] | year=1973 |pages=226β234}}</ref> [[SISAL]], a popular dataflow language developed at [[Lawrence Livermore National Laboratory]], looks like most statement-driven languages, but variables should be [[single assignment|assigned once]]. This allows the [[compiler]] to easily identify the inputs and outputs. A number of offshoots of SISAL have been developed, including [[SAC programming language|SAC]], ''Single Assignment C'', which tries to remain as close to the popular [[C (programming language)|C programming language]] as possible. The United States Navy funded development of signal processing graph notation (SPGN) and ACOS starting in the early 1980s. This is in use on a number of platforms in the field today.<ref>Underwater Acoustic Data Processing, Y.T. Chan</ref> A more radical concept is [[Prograph]], in which programs are constructed as graphs onscreen, and variables are replaced entirely with lines linking inputs to outputs. Prograph was originally written on the [[Apple Macintosh|Macintosh]], which remained single-processor until the introduction of the [[DayStar Digital|DayStar Genesis MP]] in 1996.{{citation needed|date=September 2023}} There are many hardware architectures oriented toward the efficient implementation of dataflow programming models.{{vague|date=September 2023}} MIT's tagged token dataflow architecture was designed by [[Greg Papadopoulos]].{{undue inline|date=September 2023}} Data flow has been proposed{{by whom|date=September 2023}} as an abstraction for specifying the global behavior of distributed system components: in the [[live distributed object]]s programming model, [[distributed data flow]]s are used to store and communicate state, and as such, they play the role analogous to variables, fields, and parameters in Java-like programming languages{{OR|date=January 2025}}.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)