SETL |
SETL is a very-high level programming language based on the mathematical theory of sets. It was originally developed by Jack Schwartz at the New York University Courant Institute of Mathematical Sciences.
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, power set construction, among others.
SETL provides quantified boolean expressions constructed using first-order predicate logic s universal quantifier and existential quantifiers.
SETL provides several iterators to produce a variety of loops over aggregate data structures.
=Sample 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.
=History=
:Python programming language s predecessor, ABC programming language, was inspired by SETL -- Lambert Meertens spent a year with the SETL group at NYU before coming up with the final ABC design! [http://mail.python.org/pipermail/python-dev/2000-August/008881.html] ::--Guido van Rossum
=See also=
*ProSet programming language
=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 0387963995.
=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]|
|