Язык потоков данных
Один с языков для машин потоков данных был предложенный Дэннисам и его сослуживцами с Массачусетского технологичного института, где проводятся наиболее серьезные исследования в области машин потоков данных.
Хотя язык Дэнниса является двумерного графического описания объектов программирования, существуют сотоварищи предложения по построению похожих языков, которые предусматривают предоставление программ потоков данных в более привычном виде - в форме последовательности операндов, подчиняющихся определенному синтаксису такого языка.
Как упоминалась повыше, в языке потоков данных ни используются понятия “переменная” и “передача управления”. Программа записывается в виде набора операторов, которые активируются данными и соединенных однонаправленными линиями передачи. В основу языка Дэнниса положенные следующие три основных понятия: исполнительный элемент, информация и линия связи.
Исполнительный элемент символизирует операцию, готовую к выполнения при поступлении информации на входные линии этого элемента и при отсутствии информации на его входных линиях. Существует два типа исполнительных элементов - блоки (actor) и размножители (link). Блок - это исполнительный элемент с одной исходящей линией и одной или несколькими входными, размножитель - с одной входной линией и несколькими исходящими.
Информация в языке Дэнниса представляется в виде токенов, которые сообщаются по линиям связи, обрабатываются и выдаются исполнительными элементами.
Отличаются два вида информации: значимость данных (например, числовые величины) и значимости руководителей сигналов (логичные величины TRUE - ПРАВДИВО или FALSE - ЛЖИВО). В описываемом языке отсутствуют средства для распознания типов значимостей данных (целые, с фиксированной точкой, комплексные и т. д.).
Используемые в языке Дэнниса понятие линия связи (arc) символизирует однонаправленное шоссе, по какому информация сообщается от одного исполнительного элемента к другого. Сигналы на линии связи могут отсутствовать либо на ей может находиться только 1 токен информации. Таким образом, линию связи можно рассматривать как определенный эквивалент традиционных понятий “переменная” и “область памяти”.
В соответствия с классификацией информации на значимости данных и значимости руководителей сигналов линии тоже разделяются на линии данных (обозначенные на рисунках сплошными стрелками) и руководители линии (обозначенные штриховыми стрелками).