Парадигма | многопарадигма : императивный, процедурный, структурированный, объектно-ориентированный |
---|---|
Разработан | (Джек) Джейкоб Т. Шварц |
Разработчик | Институт Куранта Математические науки |
Впервые появилось | 1969; 51 год назад (1969) |
Стабильный выпуск | 1.1 / 7 января 2005 г.; 15 лет назад (07.01.2005) |
Дисциплина набора текста | Динамический |
Веб-сайт | setl.org |
Под влиянием | |
АЛГОЛ 60 | |
Под влиянием | |
SETL2, ISETL, ABC |
SETL (SET Language) - это язык программирования очень высокого уровня, основанный на математической теории устанавливает. Первоначально он был разработан (Джеком) Джейкобом Т. Шварцем в Нью-Йоркском университете (NYU) Институт математических наук Куранта в конце 1960-х годов.
SETL предоставляет два основных типа агрегированных данных: неупорядоченные наборы и последовательности (последние также называются кортежами). Элементы наборов и кортежей могут быть любого произвольного типа, включая сами наборы и кортежи. Карты предоставляются в виде наборов пар (т. Е. Кортежей длины 2) и могут иметь произвольные типы домена и диапазона. Примитивные операции в SETL включают, среди прочего, членство в множестве, объединение, пересечение и построение множества.
SETL предоставляет количественные логические выражения, построенные с использованием универсальных и экзистенциальных кванторов из логики предикатов первого порядка.
SETL предоставляет несколько итераторов для создания множества циклов по совокупным структурам данных.
Вывести все простые числа от 2 до N:
print ([n in [2..N] | forall m in {2..n - 1 } | n mod m>0]);
Обозначение аналогично составлению списка.
Определение факториальной процедуры:
процедура факториал (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. Позже это стало первой проверенной реализацией Ada, сертифицированной 11 апреля 1983 года.
Согласно Гвидо ван Россум, «предшественник Python, ABC, был вдохновлен SETL - Ламберт Меертенс провел год с группой SETL в Нью-Йоркском университете, прежде чем придумал окончательный дизайн ABC! "
SET Language 2 (SETL2), обратно несовместимый потомок SETL, был создан Кирком Снайдером из Курантского института математических наук Нью-Йоркского университета в конце 1980-х годов. Как и его предшественник, он основан на теории и обозначениях конечных множеств, но также на синтаксис и стиль языка Ада повлиял.
Interactive SET Language (ISETL) - это вариант SETL, используемый в дискретной математике.