Jump to content

SETL

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

SETL (SET Language) — язык программирования очень высокого уровня. [1] на основе математической теории множеств . [2] [3] Первоначально он был разработан в Нью-Йоркского университета (NYU) Институте математических наук Куранта в конце 1960-х годов группой, в которую входили Джек Джейкоб Т. Шварц , [1] [3] РБК Дьюар и Э. Шенберг. [1] Шварцу приписывают разработку языка. [4]

SETL предоставляет два основных типа совокупных данных: (неупорядоченные) наборы и кортежи . [1] [2] [5] Элементы множеств и кортежей могут быть любого произвольного типа, включая сами множества и кортежи, за исключением неопределенного значения om. [1] (иногда пишется с заглавной буквы: ОМ ). [6] Карты предоставляются в виде наборов пар (т. е. кортежей длины 2) и могут иметь произвольные типы домена и диапазона. [1] [5] Примитивные операции в SETL включают, среди прочего, членство в множестве, объединение, пересечение и построение степенного множества. [1] [7]

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

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

Выведите все простые числа от 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 и APOLLO . [9] В 1970-е годы СЭТЛ была портирована на БЭСМ-6 , ЕС ЭВМ и другие российские вычислительные системы. [10]

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

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

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

[ редактировать ]

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

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

GNU SETL — это утилита командной строки, которая расширяет и реализует SETL. [16]

  1. ^ Перейти обратно: а б с д и ж г час я Шварц, Дж. Т.; Дьюар, РБК; Шенберг, Э.; Дубинский, Э. (1986). «Программирование с помощью наборов» . SpringerLink : v–vii, 2, 48, 53, 57–58, 63, 113 и далее. дои : 10.1007/978-1-4613-9575-1 .
  2. ^ Перейти обратно: а б «GNU SETL Ом» . setl.org . Проверено 24 апреля 2024 г.
  3. ^ Перейти обратно: а б Маркофф, Джон (4 марта 2009 г.). «Джейкоб Т. Шварц, 79 лет, неугомонный учёный, умер» . Нью-Йорк Таймс . ISSN   0362-4331 . Проверено 24 апреля 2024 г.
  4. ^ Вычислительная логика и теория множеств . стр. VII. дои : 10.1007/978-0-85729-808-9 .
  5. ^ Перейти обратно: а б «ГЛАВА 2» . www.settheory.com . Проверено 24 апреля 2024 г.
  6. ^ «ГЛАВА 3» . www.settheory.com . Проверено 24 апреля 2024 г.
  7. ^ Перейти обратно: а б «ГЛАВА 3» . www.settheory.com . Проверено 24 апреля 2024 г.
  8. ^ «ГЛАВА 4» . www.settheory.com . Проверено 24 апреля 2024 г.
  9. ^ Дж. Т. Шварц; РБК Дьюар; Э. Дубинский; Э. Шенберг (1986). Программирование с наборами. Введение в SETL Спрингер Паблишинг Нью-Йорк Инк. ISBN  978-1-4613-9577-5 .
  10. ^ И.В. Поттосин, ed. (2001). Становление новосибирской школы программирования (мозаика воспоминаний) [ Formation of the Novosibirsk school of programming (mosaic of memories) ] (PDF) (in Russian). Новосибирск: Институт систем информатики им. А. П. Ершова СО РАН. pp. 106–113.
  11. ^ Дьюар, Роберт Б.К.; Фишер-младший, Джеральд А.; Шенберг, Эдмонд; Фрёлих, Роберт; Брайант, Стивен; Госс, Клинтон Ф.; Берк, Майкл (ноябрь 1980 г.). «Переводчик Ады Нью-Йоркского университета». Материалы симпозиума ACM-SIGPLAN по языку программирования Ada — SIGPLAN '80 . Том. 15. стр. 194–201. дои : 10.1145/948632.948659 . ISBN  0-89791-030-3 . S2CID   10586359 .
  12. ^ SofTech Inc., Уолтем, Массачусетс (11 апреля 1983 г.). «Сводный отчет о проверке компилятора Ada: NYU Ada/ED, версия 19.7 V-001» . Архивировано из оригинала 7 июня 2017 года . Проверено 16 декабря 2010 г. {{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  13. ^ Python-Dev: SETL (был: вяло относился к литералам диапазона)
  14. ^ Перейти обратно: а б «СЭТЛ2 – ЭДМ2» . www.edm2.com . Проверено 24 апреля 2024 г.
  15. ^ Бакстер Гастингс, Нэнси; Дубинский, Эд; Левин, Гэри (1989). Изучение дискретной математики с ISETL . Нью-Йорк: Springer-Verlag. ISBN  978-0-387-96898-8 .
  16. ^ «ГНУ СЭТЛ» . setl.org . Проверено 24 апреля 2024 г.

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

[ редактировать ]
  • Шварц, Джейкоб Т., «Теория множеств как язык спецификации программ и программирования». Институт математических наук Куранта, Нью-Йоркский университет, 1970.
  • Шварц, Джейкоб Т., «О программировании, промежуточный отчет о проекте SETL», факультет компьютерных наук, Институт математических наук Куранта, Нью-Йоркский университет (1973).
  • Шварц, Джейкоб Т., Дьюар, РБК, Дубинский Э. и Шонберг Э., Программирование с наборами: введение в SETL , 1986. ISBN   0-387-96399-5 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6a1447a7b3a473deaf82436b339e0cec__1717169580
URL1:https://arc.ask3.ru/arc/aa/6a/ec/6a1447a7b3a473deaf82436b339e0cec.html
Заголовок, (Title) документа по адресу, URL1:
SETL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)