Программирование потока данных - шаблоны и структуры

Я просто наткнулся на предлагаемую библиотеку Boost:: Dataflow. Это похоже на интересный подход, и мне было интересно, существуют ли другие альтернативные рамки для С++, и если есть какие-либо связанные шаблоны проектирования. Я не исключал Boost:: Dataflow, я просто рассматриваю любые доступные альтернативы, чтобы лучше понять домен и мои параметры (или, если необходимо, свернуть свои собственные).

Ответы

Ответ 1

Википедия

В Википедии есть несколько хороших статей о теории программирования потока данных:

Эти статьи написаны разными авторами, поэтому есть некоторые перекрытия, и некоторые важные вещи отсутствуют, но это очень хорошая начальная точка.

TinyOS

Это операционная система с открытым исходным кодом, основанная на принципе потока данных. У меня есть плохие чувства по этому поводу: они даже не упоминают термин "поток данных". Хотя это и возможно, и, возможно, стоит изучить его.

Ответ 3

Вы также можете посмотреть на две основные рамки робототехники с открытым исходным кодом, ROS и Orocos. Существует также Rock, но он основан на Orocos, поэтому он эквивалентен, если вы просто ищете инфраструктуру компонента С++.

Ответ 4

если вы хотите этот дизайн для обработки изображений или визуализации, вы можете найти хороший источник в itk. И если вы хотите использовать gui для этого потока данных (данных/работы), вы можете использовать devide. Мои 2центы, Johan

Ответ 5

Только для записей вы также можете рассмотреть gstreamermm, который является оберткой С++ вокруг gstreamer.

Ответ 6

Visual Studio Concurrency Runtime содержит асинхронную структуру потока данных в С++.

Пример потока данных обработки изображений: http://msdn.microsoft.com/en-us/library/ff398050.aspx

Ответ 7

Есть несколько библиотек С++ для потока данных, которые я нашел:

  • cellspp - позволяет использовать модель оценки электронных таблиц.
  • DSPatch и Route11 - Структуры потока данных С++. Позволяет писать программы в потоке данных. Выглядит интересно.

Ответ 8

Вы можете проверить мою реализацию потока данных здесь: http://ambient.comp-phys.org

Он поддерживает MPI и потоки и основан на пользовательских типах потоков данных (например, ambient:: vector), которые работают через систему управления версиями объектов во время выполнения.

Ответ 9

Если ваша область является генерацией/обработкой звука, используйте http://www.synthedit.com/

Это выглядит многообещающим, я нашел хорошие ответы на серьезные проблемы в документах SDK (полифония). Забавно, но они не упоминают слово dataflow.

Ответ 10

"Программирование потоков данных" - одна из тех вещей, которые скрывались в течение десятилетий и никогда не снимались... для программного обеспечения в любом случае; в мире VHDL/Verilog вы обнаружите, что гораздо более легко принимаете мышление потока данных. Но в мире программного обеспечения... почему-то это никогда не кажется более масштабным вне игровых систем, возможно, потому, что люди настаивают на связывании его вместе с визуальным программированием (и я вижу ускорение потока данных также проталкивает этот путь). Некоторые люди смотрят на программирование потока данных, чтобы решить кризис программного обеспечения, сделав его более похожим на дизайн HW с подключаемыми компонентами со связанными штырьками... но повесьте, дизайн HW тоже очень тяжелый! (Интересно, что, хотя в системах визуального программирования HW существуют , никто не использует их для создания чего-либо большого).

Самый интересный, активный современный пример, который я знаю об использовании принципов потока данных, - это PureData среда аудиовизуального программирования.