Эта статья требует дополнительных ссылок для проверки . ( апрель 2017 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Парадигма | мультипарадигма : императивная , процедурная , структурированная , объектно-ориентированная |
---|---|
Разработано | (Джек) Джейкоб Т. Шварц |
Разработчик | Курантский институт математических наук |
Впервые появился | 1969 |
Стабильный выпуск | 1.1 / 7 января 2005 г . |
Печатная дисциплина | Динамический |
Веб-сайт | setl |
Под влиянием | |
АЛГОЛ 60 | |
Под влиянием | |
SETL2 , ISETL , SETLX , ABC |
SETL (язык SET) - это язык программирования очень высокого уровня, основанный на математической теории множеств . Первоначально он был разработан (Джеком) Джейкобом Т. Шварцем в Институте математических наук Куранта Нью-Йоркского университета (NYU) в конце 1960-х годов.
Дизайн [ править ]
SETL предоставляет два основных типа агрегированных данных: неупорядоченные наборы и последовательности (последние также называются кортежами ). Элементы наборов и кортежей могут быть любого произвольного типа, включая сами наборы и кортежи. Карты предоставляются в виде наборов пар (т. Е. Кортежей длиной 2) и могут иметь произвольные типы домена и диапазона. Примитивные операции в SETL включают, среди прочего, членство в множестве, объединение, пересечение и построение множества степеней.
SETL предоставляет количественные логические выражения , построенные с использованием универсальных и экзистенциальные кванторов из логики предикатов первого порядка .
SETL предоставляет несколько итераторов для создания различных циклов по агрегированным структурам данных.
Примеры [ править ]
Выведите все простые числа от 2 до N:
print ([n в [2..N] | для всех m в {2..n - 1} | n mod m> 0]);
Обозначения аналогичны пониманию списков .
Определение факторной процедуры:
процедура factorial (n); - вычисляет факториал n! return if n = 1 then 1 else n * факториал (n - 1) end if;конечный факториал;
Более обычное выражение SETL для факториала (n> 0):
* / [1..n]
Использует [ редактировать ]
В 1970-х годах SETL был перенесен на БЭСМ-6 , ЭВМ ЭС и другие российские компьютерные системы.
SETL использовался для ранней реализации языка программирования Ada , получившего название переводчика NYU Ada / ED. [1] Позже это стало первой проверенной реализацией Ada, сертифицированной 11 апреля 1983 г. [2]
По словам Гвидо ван Россума , « предшественник Python , ABC , был вдохновлен SETL - Ламберт Меертенс провел год с группой SETL в Нью-Йоркском университете, прежде чем придумал окончательный дизайн ABC!» [3]
Варианты языка [ править ]
SET Language 2 (SETL2), обратно несовместимый потомок SETL, был создан Кирком Снайдером из Института математических наук Куранта при Нью-Йоркском университете в конце 1980-х годов. Как и его предшественник, он основан на теории и обозначении конечных множеств, но также на синтаксис и стиль языка Ада повлиял.
Интерактивный язык SET (ISETL) - это вариант языка SETL, используемый в дискретной математике .
Ссылки [ править ]
- ^ Дьюар, Роберт Б.К .; Фишер-младший, Джеральд А.; Шенберг, Эдмонд; Froelich, Роберт; Брайант, Стивен; Госс, Клинтон Ф .; Берк, Майкл (ноябрь 1980). "Переводчик Ada NYU и устный переводчик". Уведомления ACM SIGPLAN - Материалы симпозиума ACM-SIGPLAN по языку программирования Ada . 15 (11): 194–201. DOI : 10.1145 / 948632.948659 . ISBN 0-89791-030-3. S2CID 10586359 .
- ^ SofTech Inc., Уолтем, Массачусетс (1983-04-11). «Сводный отчет о проверке компилятора Ada: NYU Ada / ED, версия 19.7 V-001» . Проверено 16 декабря 2010 .CS1 maint: несколько имен: список авторов ( ссылка )
- ^ Python-Dev: SETL (был: равнодушен к литералам диапазона)
Дальнейшее чтение [ править ]
- Шварц, Якоб Т., "Теория множеств как язык для спецификации программ и программирования". Курантский институт математических наук Нью-Йоркского университета, 1970.
- Шварц, Джейкоб Т., «О программировании, промежуточный отчет по проекту SETL», Департамент компьютерных наук, Институт математических наук Куранта, Нью-Йоркский университет (1973).
- Шварц, Джейкоб Т., Дьюар, РБК, Дубинский, Э. и Шенберг, Э., Программирование с помощью наборов: введение в SETL , 1986. ISBN 0-387-96399-5 .
Внешние ссылки [ править ]
- Официальный сайт
- Программирование в SETL и прочее
- Архив исторических источников SETL