Он имеет многомасштабный подход и, кажется, завершается (это расширение сети Петри).

акое язык программирования потока данных? Зачем это использовать? и есть ли какие-то преимущества для этого?

 JoshBerke20 янв. 2009 г., 16:37
Спасибо, я только что узнал что-то новое
 Nemanja Trifunovic02 авг. 2016 г., 18:46
Программы потока данных могут быть выполнены в пространстве (представьте заводскую линию), где стандартные программы Controlflow выполняются во времени. Видеть:openspl.org/what-is-openspl для получения дополнительной информации.

Ответы на вопрос(10)

Cameleon: www.shinoe.org/cameleon который кажется простым в использовании. Это графический язык для функционального программирования, который использует подход потока данных (работы).

Он написан на C ++, но может вызывать любые типы локальных или удаленных программ, написанных на любом языке программирования.

Он имеет многомасштабный подход и, кажется, завершается (это расширение сети Петри).

Языки программирования потока данных предлагают выделить некоторые локальные поведения в так называемомактеры", которые должны работать параллельно и обмениваться данными по каналам точка-точка. Нет понятия центральной памяти (как для кода, так и для данных) в отличие от модели компьютеров фон Неймана.

Эти актерыпотреблять токены данных на их входах ипроизводить новые данные об их результатах.

Это определение не навязывает средства для применения этого на практике. Однако производство / потребление данных необходимо тщательно анализировать: например, если субъект B не потребляет с той же скоростью, что и субъект A, который производит данные, то между ними требуется потенциально неограниченная память (fifo) , Многие другие проблемы могут возникнуть, кактупики.

Во многих случаях этот анализ потерпит неудачу, потому что чередование внутренних поведений трудноразрешимо (вне досягаемости современных формальных методов).

Несмотря на это,языки программирования потока данных остаются привлекательными во многих областях :

например, для определения эталонных моделей для кодирования видео: программа на чистом C не будет выполнять эту работу, потому что она предполагает, что все выполняется как последовательность операций, что неверно для компьютеров (конвейер, VLIW, mutlicores, VLSI). Может быть, вы могли бы взглянуть на это:недавняя кандидатская диссертация, Язык потока данных CAL предлагается в качестве унифицирующего языка для справочников видеокодеров / декодеров следующего поколения.Критическое значение там, где требуется безопасность: если вы добавите некоторые строгие предположения относительно производства / потребления данных, то вы получите язык с большим потенциалом с точки зрения генерации кода, доказательств и т. Д. (См.синхронные языки)

где программирование потока данных имеет гораздо больше смысла. Медиа в реальном времени является одним из примеров, и две широко используемые графические среды программирования потоков данных, Pure Data и Max / MSP, оба ориентированы на программирование медиа в реальном времени. Я предполагаю, что их визуальный характер также хорошо согласуется с программированием потока данных.

данных. Языки потоков данных во многом похожи на функциональные языки программирования, за исключением того, что значения в листьях всего графа программы вообще не являются значениями, а являются переменными (или потоками значений), поэтому при их изменении изменения пульсируют и растекаются по графику. ,

 Barry Kelly20 янв. 2009 г., 22:50
Решить - это дополнительная функция, которую большинство людей не используют. И деревья тоже графы; более того, если любые две ячейки относятся к одной и той же третьей ячейке, они образуют даг и больше не являются деревом.
 Barry Kelly20 янв. 2009 г., 17:19
Я не согласна; решатели ограничений обычно работают путем обнаружения оптимумов в пространствах поиска путем распространения ограничений. Электронные таблицы распространяют значения, а не ограничения.
 Dan30 июл. 2009 г., 12:15
«Электронные таблицы распространяют значения, а не ограничения». Да, поток значений - это то, что делает его «потоком данных».

реактивное программирование, Когда этот стиль программирования используется на функциональном языке, он называетсяфункционально-реактивное программирование, Примером функционального реактивного языка программирования для Интернета являетсяFlapjax.

Также,ANIC это язык потоков данных в последнее времяобсуждается на хакерских новостях.

Другой примерстриж из Оксфорда.

 Jus1221 мар. 2014 г., 06:48
+1 за упоминание реактивного программирования.

анных в MS SSIS являются хорошим примером. Графический инструмент в этом случае.

которые фокусируются на состоянии программы и вызывают выполнение операций в соответствии с любым изменением состояния. Языки программирования потока данных по своей сути параллельны, потому что операции основаны на входах, которые при выполнении вызовут выполнение операции. Это означает, что в отличие от обычной программы, в которой за одной операцией следует следующая операция, в программном потоке данных операции будут выполняться до тех пор, пока выполняются входные данные и, таким образом, нет установленного порядка.

Часто языки программирования потока данных используют большую хеш-таблицу, где ключи - это данные программы, а значения таблицы - указатели на операции программы. Это облегчает создание многоядерных программ на языке программирования потока данных, поскольку каждому ядру нужна только хеш-таблица для работы.

Типичным примером языка программирования потока данных является программа электронных таблиц, в которой есть столбцы данных, на которые влияют другие столбцы данных. Если данные в одном столбце изменятся, другие данные в других столбцах, вероятно, изменятся вместе с ним. Хотя программа электронных таблиц является наиболее распространенным примером языка программирования потоков данных, большинство из них, как правило, графические языки.

 tomekwi12 дек. 2014 г., 12:10
Благодарю. Более понятно, чем принятый ответ.
 edymtt03 янв. 2013 г., 17:16
+1, потому что вы поделились тем, что узнали, так как задали этот вопрос.
Решение Вопроса

которые работают с внешними данными. Условное выполнение, переходы и вызовы процедур изменяют поток команд для выполнения. Это можно рассматривать как инструкции, проходящие через данные (например, инструкции работают с регистрами, которые загружаются данными с помощью инструкций - данные являются статическими, если поток команд не перемещает их). Оператор "if" потока управления переходит на правильную ветвь в потоке команд, но данные не перемещаются.

На языке потока данных у вас есть поток данных, который передается от инструкции к инструкции для обработки. Условное выполнение, переходы и вызовы процедур направляют данные к различным инструкциям. Это можно рассматривать как данные, проходящие через статические инструкции, например, как электрические сигналы проходят по контурам или вода течет по трубам. Оператор потока данных if будет направлять данные в правильную ветвь.

Некоторые примеры функций потока данных и языков:

Таблицы по сути являются потоком данныхUnix трубыФьючерсы и обещания являются потоком данных или подобными потоку конструкциями, найденными во многих современных языкахОбмен сообщениями вактерская модель это поток данныхНекоторые языки имеют функции потока данных:унция имеетпеременные потока данныхGroovy имеетGParsClojure имеетclojure.contrib.dataflow, Reagi а такжедротик

Текстовые языки

VHDL, Verilog и другиеязыки описания оборудования по сути поток данныхцыпленокCunieformБлескИспользуется в оборонной, аэрокосмической и энергетической промышленности.Птолемей IIEsterelНайквиста

Визуальные языки

LabVIEW (Скриншот [источник])Max / MSP (Скриншот [источник])Чистые данные (Скриншот [источник])Reaktor (Скриншот [источник])SCADE (Скриншот [источник]), графическая среда программирования для LusterSynthMaker (Скриншот [источник]) а такжеFlowStoneVVVV (Скриншот [источник])Expecco (Скриншот [источник])Встряска (Скриншот [источник])[BLOK] (Скриншот [источник])Кварцевый Композитор (Скриншот [источник])AudioMulch (Скриншот [источник])

Продукты, которые встраивают визуальный язык потока данных:

смеситель (Скриншот)Voreen (Скриншот)Нереальный Двигателькисмет (Скриншот)АНХОР Блок-схема (Скриншот)Динамо для Autodesk Revit (Скриншот)LiveBlox (Скриншот)
 Sridhar-Sarnobat13 авг. 2014 г., 21:06
Почему никто не упоминает конвейеры Unix как общий пример программирования потока данных? Даже Википедия не упоминает об этом. Есть ли что-то, что дисквалифицирует это?
 Beef25 февр. 2011 г., 17:23
Добавление в менее известный список:
 solvingPuzzles28 сент. 2012 г., 06:40
Что является примером чего-то, что НЕ является потоком данных?
 blabla99902 апр. 2011 г., 13:59
еще один называется expecco, в комплекте с графическим интерфейсом (Google и скачать демо)
 Dan29 дек. 2012 г., 02:18
Большинство языков не указаны выше. C ++, Java, Python, COBOL и почти любой другой императивный язык, большинство языков OO, большинство функциональных языков, языки логического программирования, такие как Prolog и т. Д. И т. Д.

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

 masterxilo01 мар. 2017 г., 01:12
Спасибо за упоминание make. Это то, что привело меня сюда. Cunieform, кажется, обобщение этого.

здан язык + машина для эффективного программирования и выполнения потока данных (-> машина потока данных Манчестера).

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

Ваш ответ на вопрос