SISAL ( Streams and Iteration in a Single Assignment Language ) — это универсальный язык функционального программирования с одним присваиванием со строгой семантикой , неявным параллелизмом и эффективной обработкой массивов. SISAL выводит график потока данных в промежуточной форме 1 (IF1). Он был создан на основе VAL (алгоритмического языка, ориентированного на значения, разработанного Джеком Деннисом ) и добавляет рекурсию и конечные потоки. Он имеет синтаксис, подобный Паскалю , и был разработан как общий язык высокого уровня для числовых программ на различных мультипроцессорах .
SISAL был определен в 1983 году Джеймсом МакГроу и др. в Манчестерском университете , LLNL , Университете штата Колорадо и DEC . Он был пересмотрен в 1985 году, а первая скомпилированная реализация была сделана в 1986 году . Согласно некоторым источникам, его производительность превосходит C и конкурентов Fortran [1] в сочетании с эффективным и автоматическим распараллеливанием.
Название SISAL произошло от выражения «sal» для «единого языка присвоения» из словаря Unix /usr/dict/words.
Существуют версии для Cray X-MP , Y-MP , 2 ; Sequent , Encore Alliant , DEC VAX-11/784 , архитектуры потоков данных , KSR1, транспьютеры и систолические массивы .
Требованиям к языку мелкозернистого параллелизма лучше соответствует язык потока данных, чем системный язык. [ нужна цитата ]
SISAL — это больше, чем просто поток данных и детальный язык. Это набор инструментов, которые преобразуют текстовый язык потоков данных, читаемый человеком, в графический формат (называемый IF1 — Промежуточная форма 1). Часть проекта SISAL также включала преобразование этого формата графа в работоспособный код C. [2]
В 2010 году SISAL пережил кратковременное возрождение, когда группа студентов Вустерского политехнического института исследовала реализацию механизма мелкозернистого параллелизма для языка SISAL. [2]
В 2018 году SISAL был модернизирован за счет синтаксиса на основе отступов, первоклассных функций, лямбда-выражений, замыканий и ленивой семантики в рамках проекта SISAL-IS. [3]