SETL - SETL

SETL
Парадигма мультипарадигма : императивная , процедурная , структурированная , объектно-ориентированная
Разработано (Джек) Джейкоб Т. Шварц
Разработчик Курантский институт математических наук
Впервые появился 1969 ; 52 года назад ( 1969 )
Стабильный выпуск
1.1 / 7 января 2005 г . ; 16 лет назад ( 2005-01-07 )
Печатная дисциплина Динамический
Интернет сайт setl .org
Под влиянием
АЛГОЛ 60
Под влиянием
SETL2 , ISETL , SETLX , ABC

SETL (язык SET) - это язык программирования очень высокого уровня, основанный на математической теории множеств . Первоначально он был разработан (Джеком) Джейкобом Т. Шварцем в Институте математических наук Куранта Нью-Йоркского университета (NYU) в конце 1960-х годов.

Дизайн

SETL предоставляет два основных типа агрегированных данных: неупорядоченные наборы и последовательности (последние также называются кортежами ). Элементы наборов и кортежей могут быть любого произвольного типа, включая сами наборы и кортежи. Карты предоставляются в виде наборов пар (т. Е. Кортежей длиной 2) и могут иметь произвольные типы домена и диапазона. Примитивные операции в SETL включают, среди прочего, членство в множестве, объединение, пересечение и построение множества степеней.

SETL предоставляет количественные логические выражения , построенные с использованием универсальных и экзистенциальные кванторов из логики предикатов первого порядка .

SETL предоставляет несколько итераторов для создания различных циклов по агрегированным структурам данных.

Примеры

Выведите все простые числа от 2 до N:

   print([n in [2..N] | forall m in {2..n - 1} | n mod m > 0]);

Обозначения аналогичны пониманию списков .

Определение факторной процедуры:

procedure factorial(n); -- calculates the factorial n!
  return if n = 1 then 1 else n * factorial(n - 1) end if;
end factorial;

Более обычное выражение SETL для факториала (n> 0):

*/[1..n]

Использует

Реализации SETL были доступны на DEC VAX , IBM / 370 , SUN workstation и APOLLO . В 1970-х годах SETL был перенесен на БЭСМ-6 , ЭВМ ЭС и другие российские компьютерные системы.

SETL использовался для ранней реализации языка программирования Ada , получившего название переводчика NYU Ada / ED. Позже это стало первой проверенной реализацией Ada, сертифицированной 11 апреля 1983 года.

По словам Гвидо ван Россума , « предшественник Python , ABC , был вдохновлен SETL - Ламберт Меертенс провел год с группой SETL в Нью-Йоркском университете, прежде чем придумал окончательный дизайн ABC!»

Языковые варианты

SET Language 2 (SETL2), обратно несовместимый потомок SETL, был создан Кирком Снайдером из Курантского института математических наук Нью-Йоркского университета в конце 1980-х годов. Как и его предшественник, он основан на теории и обозначениях конечных множеств, но также на синтаксис и стиль языка Ада повлиял.

Интерактивный язык SET (ISETL) - это вариант языка SETL, используемый в дискретной математике .

использованная литература

дальнейшее чтение

  • Шварц, Якоб Т. "Теория множеств как язык для спецификации программ и программирования". Курантский институт математических наук Нью-Йоркского университета, 1970.
  • Шварц, Джейкоб Т., «О программировании, промежуточный отчет по проекту SETL», Департамент компьютерных наук, Институт математических наук Куранта, Нью-Йоркский университет (1973).
  • Шварц, Якоб Т., Дьюар, РБК, Дубинский, Э. и Шенберг, Э., Программирование с помощью наборов: введение в SETL , 1986. ISBN  0-387-96399-5 .

внешние ссылки