データフロープログラミング
データフロープログラミングは、{input} operator {output}を基本単位にする。outputは次のinputになる。operatorは有向グラフ形式で連結配置される。各ノードがoperatorで、矢印がinputとoutputのフローである。データフローには分流(diverge)と合流(converge)の概念がある。右図ではBのoutputは、C・D・Eへのinputに分流される。B・C・Dのoutputは、Eへのinputに合流される。
データフロープログラムは、起点オペレータへの外部からのデータ入力で開始される。右図ではAとGが起点になる。これはイベント駆動に似ている。データ入力ごとにスレッドが生成され、事実上のマルチスレッドで同時計算されつつ、特定の合流オペレータで同期が取られる。合流ではスレッドも一つに融合される。分流ではスレッドも別々に生成される。その同期にはプッシュ(push model)とプール(pull model)の二つがある。プッシュは、input値が全て揃うまで計算待機されるというバリア同期である。プールは、最初のinputが来てから一定時間経過すると未input値をdefault値にして強制計算outputするというタイマー同期である。
データフローの有向グラフ構築は、しばしばビジュアルプログラミングの対象にされる。