- SETL
Infobox programming language
name = SETL
paradigm = multi-paradigm: imperative, procedural, structured, Object-Oriented
year = 1969
designer =Jack Schwartz
developer =Courant Institute of Mathematical Sciences
latest release version =
latest release date =January 7 ,2005
typing = Dynamic
implementations =
dialects =
influenced_by =
influenced =ProSet , ABC, SlimSETL(SET Language) is a very-high level
programming language based on the mathematicaltheory of sets . It was originally developed byJack Schwartz at the NYUCourant Institute of Mathematical Sciences in the late 1960's.SETL provides two basic aggregate data types: "unordered sets", and "sequences" (the latter also called "tuples"). The elements of sets and tuples can be of any arbitrary type, including sets and tuples themselves. "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 and
existential quantifier s offirst-order predicate logic .SETL provides several
iterator s to produce a variety of loops over aggregate data structures.In the 1970s,
SETL was ported to theBESM-6 ,ES EVM and other Russian computer systems.ample code
Print all prime numbers from 2 to N: print({n in {2..N} | forall m in {2..n - 1} | 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;
History
ee also
*
ISETL (programming language)
*ProSet
*SETL2
*Rapira Bibliography
*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.External links
* [http://cs1.cs.nyu.edu/bacon/download-setl.html SETL binary distribution for UNIX]
* [http://www.settheory.com "Programming on SETL" and other things]
* [http://cs1.cs.nyu.edu/bacon/setl-doc.html SETL documentation]
* [http://cs1.cs.nyu.edu/bacon/setlprog.ps.gz "The SETL programming language", by Robert Dewar]
* [http://www.setl-lang.org/wiki/ SETL wiki]
Wikimedia Foundation. 2010.