SETL (SET Language) is a
very high-level programming language
A very high-level programming language (VHLL) is a programming language with a very high level of abstraction, used primarily as a professional programmer productivity tool.
VHLLs are usually domain-specific languages, limited to a very specific ...
based on the mathematical
theory of sets
Set theory is the branch of mathematical logic that studies sets, which can be informally described as collections of objects. Although objects of any kind can be collected into a set, set theory – as a branch of mathematics – is mostly ...
.
It was originally developed at the
New York University
New York University (NYU) is a private university, private research university in New York City, New York, United States. Chartered in 1831 by the New York State Legislature, NYU was founded in 1832 by Albert Gallatin as a Nondenominational ...
(NYU)
Courant Institute of Mathematical Sciences
The Courant Institute of Mathematical Sciences (commonly known as Courant or CIMS) is the mathematics research school of New York University (NYU). Founded in 1935, it is named after Richard Courant, one of the founders of the Courant Institute ...
in the late 1960s, by a group containing (Jack)
Jacob T. Schwartz
__NOTOC__
Jacob Theodore "Jack" Schwartz (January 9, 1930 – March 2, 2009) was an American mathematician, computer scientist, and professor of computer science at the New York University Courant Institute of Mathematical Sciences. He was the ...
,
R.B.K. Dewar, and E. Schonberg.
Schwartz is credited with designing the language.
Design
SETL provides two basic aggregate data types: (unordered) ''sets'', and ''tuples''.
The elements of sets and tuples can be of any arbitrary type, including sets and tuples themselves, except the undefined value om
(sometimes capitalized: OM). ''Maps'' are provided as sets of ''pairs'' (i.e., tuples of length 2) and can have arbitrary domain and range types.
Primitive operations in SETL include set membership, union, intersection, and power set construction, among others.
SETL provides quantified boolean expressions constructed using the
universal
Universal is the adjective for universe.
Universal may also refer to:
Companies
* NBCUniversal, a media and entertainment company that is a subsidiary of Comcast
** Universal Animation Studios, an American Animation studio, and a subsidiary of N ...
and
existential quantifier
Existentialism is a family of philosophy, philosophical views and inquiry that explore the human individual's struggle to lead an Authenticity (philosophy), authentic life despite the apparent Absurdity#The Absurd, absurdity or incomprehensibili ...
s of
first-order predicate logic
First-order logic, also called predicate logic, predicate calculus, or quantificational logic, is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantified variables over ...
.
SETL provides several
iterator
In computer programming, an iterator is an object that progressively provides access to each item of a collection, in order.
A collection may provide multiple iterators via its interface that provide items in different orders, such as forwards ...
s to produce a variety of loops over aggregate data structures.
Examples
Print all prime numbers from 2 to :
print(
in "> forall m in "> n mod m > 0;
The notation is similar to list comprehension.
A factorial procedure definition:
procedure factorial(n); -- calculates the factorial n!
return if n = 1 then 1 else n * factorial(n - 1) end if;
end factorial;
A more conventional SETL expression for factorial (n > 0):
*/[1..n]
Uses
Implementations of SETL were available on the CDC 6600, CDC Cyber, DEC VAX, IBM/370, Sun Microsystems, SUN workstation and Apollo Computer, APOLLO.
In the 1970s, SETL was ported to the
BESM-6
BESM-6 (, short for ''Большая электронно-счётная машина'', i.e. 'Large Electronic Calculating Machine') was a Soviet electronic computer of the BESM series.
Overview
The BESM-6 was the most well-known and influential ...
,
ES EVM
The ES EVM (, "Unified System of Electronic Computing Machines"), or YeS EVM, also known in English literature as the Unified System or Ryad (, "Series"), is a series of mainframe computers generally compatible with IBM's System/360 and System/ ...
and other Russian computer systems.
SETL was used for an early implementation of the programming language
Ada
Ada may refer to:
Arts and entertainment
* '' Ada or Ardor: A Family Chronicle'', a novel by Vladimir Nabokov
Film and television
* Ada, a character in 1991 movie '' Armour of God II: Operation Condor''
* '' Ada... A Way of Life'', a 2008 Bollywo ...
, named the NYU Ada/ED translator. This later became the first validated Ada implementation, certified on April 11, 1983.
According to
Guido van Rossum
Guido van Rossum (; born 31 January 1956) is a Dutch programmer. He is the creator of the Python programming language, for which he was the " benevolent dictator for life" (BDFL) until he stepped down from the position on 12 July 2018. He ...
, "
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (prog ...
's predecessor,
ABC
ABC are the first three letters of the Latin script.
ABC or abc may also refer to:
Arts, entertainment and media Broadcasting
* Aliw Broadcasting Corporation, Philippine broadcast company
* American Broadcasting Company, a commercial American ...
, was inspired by SETL --
Lambert Meertens
Lambert Guillaume Louis Théodore Meertens or L.G.L.T. Meertens (born 10 May 1944, in Amsterdam) is a Dutch computer scientist and professor. , he is a researcher at the Kestrel Institute, a nonprofit computer science research center in Palo Al ...
spent a year with the SETL group at NYU before coming up with the final ABC design!"
Language variants
''SET Language 2'' (SETL2), a backward incompatible descendant of SETL, was created by Kirk Snyder of the Courant Institute of Mathematical Sciences at
New York University
New York University (NYU) is a private university, private research university in New York City, New York, United States. Chartered in 1831 by the New York State Legislature, NYU was founded in 1832 by Albert Gallatin as a Nondenominational ...
in the late 1980s.
Like its predecessor, it is based on the theory and notation of finite sets, but has also been influenced in syntax and style by the Ada language.
''Interactive SET Language'' (ISETL) is a variant of SETL used in
discrete mathematics
Discrete mathematics is the study of mathematical structures that can be considered "discrete" (in a way analogous to discrete variables, having a bijection with the set of natural numbers) rather than "continuous" (analogously to continuous f ...
.
''GNU SETL'' is a command-line utility that extends and implements SETL.
References
Further reading
* 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. .
External links
*
''Programming in SETL'' and other thingsSETL Historical Sources Archive
{{Authority control
Academic programming languages
Set theoretic programming languages
Programming languages created in 1969