DataRoads / DaFODeL

DaFODeL is short for *Da*ta *F*low *O*bject *De*sign *L*anguage, a visual flow-centric programming language, and is pronounced like "daffodil". Data always flows down, Y down length represents "flow rate" or relative processing time in big-O notation, and X across width represents relative data flow size or I/O band-width needed. Colors represent data types or schema mixes, and background "pages" can be used to represent processor I/O (data X width) and per-cycle calculations (processing Y depth) capabilities for a given target platform.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DaFODeL

DaFODeL is short for Data Flow Object Design Language, a visual flow-centric programming language, and is pronounced like "daffodil".

Data always flows down, Y down length represents "flow rate" or relative processing time in big-O notation, and X across width represents relative data flow size or I/O band-width needed. Data flow object sizes and shapes are always determined by these dimensions, but the borders and periphery of object hulls can be decorated to visually represent their unique use-cases. Downward directed edge lengths connecting between objects represent expected average network or bus channel latency, and their width represents a direct analog of expected channel bandwidth (always the same or less than the data set being transported, so pinched edges will tend to be longer or "slower" than uniform width edges).

Colors represent data types or schema mixes, and background rectangular "pages" or soft outlines can be used to represent specific processor I/O (data X width) and per-cycle calculations (processing Y depth) capabilities for a given target platform. Specialized data processors, for example GPU parts with high FLOPS rates, can be represented by pages tinted the same color as their optimal data type, such as "floating point blue".

High speed process memory and caches will never be represented in the data flow charts directly, as those paramaters will be encompassed in the processing elements and transport channels of each target platform -- to be utilized for state-machine debug cached-step copies, or even zero-copy optimized by native target compilers as appropriate. Data flows intended to be output into any long-term storage or archive systems can be represented as output edges connecting down into output bandwidth sized spheres, which should always rest at the bottom of any given flow diagram. Inputs from past long-term storage should always float at the top of any executable diagram, but individual reusable object diagrams should never pre-specify input sources in this manner. Only persistent side-channel inputs, like stdin or hardware event triggers, can float inside the diagram just above first intended access points.

About

DaFODeL is short for *Da*ta *F*low *O*bject *De*sign *L*anguage, a visual flow-centric programming language, and is pronounced like "daffodil". Data always flows down, Y down length represents "flow rate" or relative processing time in big-O notation, and X across width represents relative data flow size or I/O band-width needed. Colors represent data types or schema mixes, and background "pages" can be used to represent processor I/O (data X width) and per-cycle calculations (processing Y depth) capabilities for a given target platform.

License:GNU Affero General Public License v3.0