提案されたBoost::Dataflowライブラリに出くわしました。興味深いアプローチのようで、C++ 用の代替フレームワークが他にあるかどうか、また関連する設計パターンがあるかどうかを知りたいと思っていました。Boost::Dataflow を除外したわけではありません。ドメインと自分のオプションをよりよく理解できるように (または必要に応じて自分でロールバックできるように)、利用可能な代替手段を調べているだけです。
11 に答える
ウィキペディア
ウィキペディアには、データフロー プログラミングの理論に関する優れた記事がいくつかあります。
これらの記事はさまざまな著者によって書かれているため、重複する部分や重要な情報が欠落している部分がありますが、非常に良い出発点です。
TinyOS
これは、データフローの原則に基づくオープン ソースのオペレーティング システムです。私はそれについて悪い気持ちを持っています.彼らは「データフロー」という用語さえ言及していません. とはいえ、それはそれであり、おそらくそれを研究する価値があります .
Intel Threading Building Blocks、特にそのtbb::flow
名前空間を見てください。
画像処理または視覚化のためにこのデザインが必要な場合は、 itkで優れたリソースを見つけることができます。また、この(データ/作業)フローのGUIが必要な場合は、devideを使用できます。私の2セント、ヨハン
記録のために、 gstreamerの C++ ラッパーであるgstreamermmを検討することもできます。
データフロー プログラミングは、何十年にもわたって潜んでいて、完全に離陸したことのないものの 1 つです。VHDL/Verilog の世界では、自然にデータフローの考え方をより簡単に取り入れていることに気付くでしょう。しかし、ソフトウェアの世界では...どういうわけか、おもちゃのシステムを超えて拡張することは決してないようです。おそらく、人々はそれをビジュアルプログラミングと結び付けることを主張しているためです(ブーストデータフローもこの道をたどっています)。一部の人々は、相互接続可能なピンを備えたプラグ可能なコンポーネントを備えたハードウェア設計のようにすることで、ソフトウェアの危機を解決するためにデータフロー プログラミングを検討していますが、ハードウェア設計も非常に困難です! (興味深いことに、HW の世界ではビジュアル プログラミング システムは存在しますが、実際には誰もいません。それらを使用して何か大きなものを構築します)。
データフローの原則を使用していると私が認識している最も興味深い、アクティブな最新の例は、PureDataオーディオビジュアル プログラミング環境です。
Visual Studio コンカレンシー ランタイムには、C++ の非同期データフロー フレームワークが含まれています。
画像処理データフローの例: http://msdn.microsoft.com/en-us/library/ff398050.aspx
ここでデータフローの実装を確認してください: http://ambient.comp-phys.org
MPI とスレッド化をサポートし、ランタイム オブジェクト バージョン管理システムを介して機能するカスタム データフロー タイプ (つまり、ambient::vector) に基づいています。
たぶん、Pure Data (pd) には C++ API があります...
あなたの分野がサウンドの生成/処理である場合は、http://www.synthedit.com/を使用してください。
それは有望に見えます.SDKドキュメント(ポリフォニー)の深い問題に対する良い答えを見つけました。面白いですが、 dataflowという言葉には触れていません。