SISAL: Бір тапсыру тілі және дерек ағыны бағдарламалауы
SISAL
SISAL бағдарламалау тілі: функционалдық, бір тапсыру, қатаң семантикасы бар, параллелизмді қолдайтын, массивтерді тиімді өңдейтін тіл. Жаратылу тарихы, ерекшеліктері.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
SISAL (Streams and Iteration in a Single Assignment Language) – қатаң семантикасы, жасырын параллелизм және тиімді массивтерді өңдеуге мүмкіндік беретін, жалпы мақсаттағы бір тапсырмалы функционалдық бағдарламалау тілі. SISAL аралық форма 1 (IF1) түрінде дерек ағыны графигін шығарады. Ол VAL-дан (Джек Деннис жасаған құндылыққа бағытталған алгоритмдік тіл) туындаған және рекурсия мен шекті ағындарды қосады. Оның синтаксисі Паскальге ұқсас, және ол әртүрлі көппроцессорлық жүйелердегі сандық бағдарламалар үшін жалпы қолданылатын жоғары деңгейдегі тіл ретінде әзірленген.
SISAL (Streams and Iteration in a Single Assignment Language) is a general purpose single assignment functional programming language with strict semantics, implicit parallelism, and efficient array handling. SISAL outputs a dataflow graph in Intermediary Form 1 (IF1). It was derived from VAL (Value oriented Algorithmic Language, designed by Jack Dennis), and adds recursion and finite streams. It has a Pascal like syntax and was designed to be a common high level language for numerical programs on a variety of multiprocessors.
Тарих
SISAL тілі 1983 жылы Джеймс МакГроу және тағы басқалар Манчестер университетінде, LLNL, Колорадо штаты университетінде және DEC мекемесінде анықталды. Ол 1985 жылы жаңартылып, алғашқы компиляцияланған нұсқасы 1986 жылы жасалды. Кейбір дереккөздерде оның өнімділігі C тілінен жоғары, ал Fortran тілімен шайқасады делінеді, сонымен қатар тиімді және автоматты параллельдеу мүмкіндігі бар. SISAL атауы Unix сөздігі /usr/dict/words-тен "Single Assignment Language" ("Бір реттік тапсыру тілі") деген сөзден "sal" деген сөзді іздеу арқылы пайда болды. Cray X MP, Y MP, 2, Sequent, Encore Alliant, DEC VAX 11/784, деректер ағыны архитектуралары, KSR1, Transputers және систоликалық тізбектер үшін нұсқалары бар.
SISAL was defined in 1983 by James McGraw et al., at the University of Manchester, LLNL, Colorado State University and DEC. It was revised in 1985, and the first compiled implementation was made in 1986. Its performance is superior to C and rivals Fortran, according to some sources, combined with efficient and automatic parallelization. SISAL's name came from grepping "sal" for "Single Assignment Language" from the Unix dictionary /usr/dict/words. Versions exist for the Cray X MP, Y MP, 2; Sequent, Encore Alliant, DEC VAX 11/784, dataflow architectures, KSR1, Transputers and systolic arrays.
Сәулет
Ұсақ түйірлі параллелизм тіліне қойылатын талаптар жүйелік тілге қарағанда деректер ағыны тілімен жақсырақ қанағаттандырылады. SISAL – деректер ағыны және ұсақ түйірлі тіл ғана емес, ол адам оқи алатын мәтіндік деректер ағыны тілін график түріне (IF1 – аралық форма 1 деп аталатын) түрлендіретін құралдар жиынтығы. SISAL жобасының бір бөлігі осы график түрін орындалатын C кодына түрлендіруді де қамтыды. 2018 жылы SISAL IS жобасы шеңберінде SISAL реттік синтаксис, бірінші дәрежелі функциялар, лямбдалар, жабылулар және жалқау семантикасымен жаңартылды.
The requirements for a fine grain parallelism language are better met with a dataflow language than a systems language. SISAL is more than just a dataflow and fine grain language. It is a set of tools that convert a textual human readable dataflow language into a graph format (named IF1 Intermediary Form 1). Part of the SISAL project also involved converting this graph format into runable C code. In 2018 SISAL was modernized with indent based syntax, first class functions, lambdas, closures and lazy semantics within a project SISAL IS.