Interested Article - Сетл
- 2020-07-15
- 1
Сетл ( SETL ; от англ. set language — язык множеств) — язык программирования , ориентированный на работу со множествами , разработанный в конце 1960-х годов группой профессора Нью-йоркского университета .
Синтаксические конструкции языка содержат операции, позволяющие манипулировать со множествами — включение, исключение, проверка принадлежности, кванторы всеобщности и существования, итераторы, позволяющие обрабатывать каждый элемент множества и так далее. Кроме множеств, язык поддерживает работу с упорядоченными множествами — кортежами .
Широкого распространения язык не получил, но был определённый всплеск популярности в 1970-е — 1980-е годы в Советском Союзе: во время визита в СССР в 1972 году Шварц сумел заинтересовать языком ряд разработчиков из Новосибирска , что положило начало нескольким годам сотрудничества между нью-йоркской и новосибирской группами программистов и математиков. В результате язык был реализован на БЭСМ-6 , ЕС ЭВМ , , работы над языком продолжались до 1985—1989 годов, активно применялся в исследованиях по тематике искусственного интеллекта . Идеи Сетла заимствованы в учебном языке Рапира и языке Старсет ( ИПС РАН , 1991).
В США язык был реализован на машинах компании Burroughs . Использовался в ранних реализациях компилятора Ады .
Во конце 1990-х годов в Нью-Йоркском университете создана вторая версия языка — SETL2, обратно совместимая с оригинальным вариантом.
Ряд идей языка воплощены в современных языках программирования, среди них — прямой предшественник Python язык ABC .
Примеры
Одна из особенностей языка — одна из первых реализаций нотации
спискового включения
; например, для печати всех простых чисел от 2 до
N
применяется следующее выражение:
print([n in [2..N] | forall m in {2..n - 1} | n mod m > 0])
Поддерживается традиционная процедурная нотация, например, для вычисления факториала:
procedure factorial(n);
return if n = 1 then 1 else n * factorial(n - 1) end if;
end factorial;
при этом благодаря наличию операций свёртки над типами-множествами выражение для факториала можно записать компактно:
*/[1..n]
Примечания
- / Под ред. И.В. Поттосина. — Н.: Институт систем информатики им. А. П. Ершова СО РАН, 2001. — С. 106-113. 28 июня 2021 года.
- Python 's predecessor, ABC, was inspired by SETL — Lambert Meertens spent a year with the SETL group at NYU before coming up with the final ABC design! — Guido van Rossum , от 14 мая 2011 на Wayback Machine
Литература
- Schwartz, Jacob T., «Set Theory as a Language for Program Specification and Programming». Courant Institute of Mathematical Sciences, New York University, 1970.
- Schwartz, Jacob T., «On Programming, An Interim Report on the SETL Project», Computer Science Department, Courant Institute of Mathematical Sciences, New York University (1973).
- Schwartz, Jacob T., Dewar, R.B.K., Dubinsky, E., and Schonberg, E., «Programming With Sets: An Introduction to SETL», 1986. ISBN 0-387-96399-5 .
- Давид Яковлевич Левин, Александр Семенович Нариньяни. Развитая СУБД как многоуровневая система на основе языка СЕТЛ. 22 с 20 см. Новосибирск ВЦ СО АН СССР 1982.
- Язык сверхвысокого уровня СЕТЛ и его реализация (для ЭВМ БЭСМ-6) / Д. Я. Левин ; Отв. ред. А. П. Ершов 160 с 20 см Новосибирск Наука Сиб. отд-ние 1983
Ссылки
- 2020-07-15
- 1