Home >> Computers >> Programming >> Languages >> Dataflow


  LabVIEW
Mozart
  Prograph
Sisal
   


Within computer programming, dataflow languages are the class of programming languages that implement dataflow principles & architecture, and model the program, conceptually in case does'nt physically, as a directed graph of the data flow between operations. Dataflow languages part a few features of functional languages, and were typically developed sequentially to bring the select few functional conception to a language supplementary suitable for numerical processing.

Dataflow languages counterpoint using a majority of programing language, which utilize a imperative programming model. Within imperative programming a program is modelled as a series of operations, a information existence profits invisible. This distinction will seem minor, however a paradigm shift is fairly dramatic, & allows dataflow languages to exist as spread retired through multiprocessor systems for free.

One of a key conception inside computer programing is the idea of "state", in essence the snap of the measure of various conditions in the models. Virtually all programing language involve a considerable total of state facts sequentially to work properly, references which is typically hidden from either the computer programmer. For the real globe lesson, assume the 3-trilateral lightly switch. Generally the switch turns in the weak by moving it to the "up" position, however around a 3-trilateral experience that will turn a lightly back off -- a symptom is according to the state of the more switch, which is probably away from watch.

In point of fact, a state is typically hidden from either a computer itself also, which usually has there is no idea that this piece of references encodes state, when that is irregular & might shortly become thrown away. This occurs when good condition, as a state trading tools needs to become shared through multiple processors inside parallel processing machines. Forswearing caring which state is crucial & which international relations and security network't, virtually all languages click the softwcome engineer to add a considerable total of additional code to suggest which information & area of the code are crucial therein respect.

This code tends to become each expensive inside terms of performance, also when hard to debug & typically downright horrible; virtually all coder only forget about a condition. Victims that just can not must pay a heavily performance numbers, which is paid potentially in the usual pack after the program diarrhea in of these processor. Expressed correspondence is one of a independent reasons for the unfortunate performance of Enterprise Java Beans system, for instance.

Dataflow languages promote a information to be a independent construct behind any program. It can be considered odd that this is non universally a example, when computer software typically absorb information, run it, then feed it back out. This was especially admittedly of older software, & is swell represented in the Unix operating system which pipes the information between little lone-purpose information. Software around a dataflow language begin by owning an input, perchance the command line parameters, & illustrate how else that information is utilized and modified. A information is at present expressed, typically illustrated physically on the screen as a line or even pipe showing in which the information flows.

Operations consist of "black boxes" by using inputs & outputs, 100% of which are then universally explicitly defined. It begin once soon when everthing of their inputs get valid, when opposed to when a program encounters the two. Whereas the traditional program in essence consists of the series of statements locution "do this, now do this", the dataflow program is supplementary such as the series of workers in an assembly line, who might clean their assigned project when soon when a materials arrive. & this is how come dataflow languages come inherently parallel; a operations st& there is no hidden state to keep track of, and a operations come completely "ready" at a equivalent instance.

Dataflow computer softwcome are typically represented super otherwise in a computer too. a traditional program is good what it seems, the series of videos that begin 1 fallowing the more. The dataflow program is constucted as a large hash table instead, with unambiguously identified inputs when a keys, & pointers to the code when information. Whenever any operation completes, a program scans down a listings until it finds the 1st operation in which 100% of the inputs come presently valid, & diarrhea it. Whilst that operation ends it may usually put information into 1 or even other outputs, thereby making another operation be valid.

For simultaneous operation single a names needs to become shared; a listings itself is the state of the entire program. So a project of maintaining state is flushed from either a computer programmer & given to the language's runtime instead. Better eventually, the overhead of parallel executiin, a want to explicitly part a state between processors, may be flushed entirely on machines by having one processor only by utilizing a different runtime.

When it can exist as required, dataflow languages were originally developed sequentially to produce parallel programming gentler. So, it were occasionally developed at a big supercomputer labs. One of a virtually all popular was SISAL, developed at Lawrence Livermore National Laboratory. SISAL looks prefer virtually all statement-caused languages, however demands that each variable become defined just another time. This allows a compiler to easily identify a inputs & outputs. The total of outgrowth of SISAL use been developed, including SAC, Single Assignment C, which seeks to remain when around a popular C programming language as possible.

The additional radical construct is Prograph, in which softwcome online come constructed when graphical record onscreen, & variables are replaced totally by using lines linking inputs to outputs. Oddly, Prograph was originally write about the Macintosh, the just computer sustaining the mighty plenty GUI at the period, which remained individual-processor, until super recently.

A virtually all popular dataflow languages come additional practical notwithstanding, a best known existence National Instruments' LabVIEW. It was originally designed to produce linking information between research laboratory equiment convenient for non-programmers, however has since turn into fairly general purpose. A second is VEE, optimized to use by using information acquisition equipment such as digital voltmeters & scope, & source hardware prefer arbitrary wave shape generators & power the diapers.

Languages
Hartmann pipelines LabVIEW Max Mindscript - Open Source visualization & computer software development environment. Prograph Pure data VEE

Computation Structures Group: CSG
MIT research group which does dataflow programming research.

CS545S: Modular Programming
College course on basic programming concepts: modular (encapsulation, abstract data types); object-oriented (class, inheritance, polymorphism, dynamic binding); concurrent (thread, synchronization); via Java compared to Oberon, Smalltalk; then dataflow model.

Dataflow Web Pages: DWP
University-based collection of dataflow resources.

Declarative Ada: parallel dataflow programming in a familiar context
From Proceedings of the 1995 ACM 23rd annual conference on Computer science conference.

Pure Data (PD)
Real-time graphical dataflow programming environment for audio, video, and graphical processing.

ResearchIndex: Coarse-Grain Dataflow Programming of Conventional Parallel Computers
Granular Lucid, GLU: coarse-grain dataflow language for programming conventional parallel computers; based on Lucid (circa 1994) an implicitly parallel, multidimensional dataflow language. A GLU program is a Lucid program with imperatively defined data functions and data types.


Computers: Programming: Languages: Functional
Computers: Programming: Languages: Multiparadigm
Computers: Programming: Languages: Visual




© 2005 GeneralAnswers.org