Aviva Directory » Computers & Internet » Programming » SETL

SETL is a very high-level programming language based on Set Theory, a branch of mathematical logic that studies sets, or collections of objects.

Developed in the late 1960s by Professor Jacob T. Schwartz, the language was released in 1970. Schwartz was the founder and chairman of the Computer Science Department of the Courant Institute of Mathematical Sciences at New York University. He had previously designed the Artspeak programming language, which ran on the CDC 6600 mainframe computer, which used punch cards and batch processing.

SETL began as a tool for the high-level expression of complex algorithms, but soon found a role in rapid software prototyping, and was used to implement the first validated Ada compiler, later evolving into a general-purpose programming language.

SETL, which is short for SET Language, is a high-level language that can be used to create a large variety of programs. The language provides two basic aggregate data types: unordered sets, and sequences referred to as tuples. The elements of sets and tuples can be of an arbitrary type, including sets and tuples themselves. Maps are provided as sets of pairs, and can have an arbitrary domain and range types.

Like other very high-level class languages, which include Lisp, APL, and Prolog, SETL is intended to reduce the cost of programming through the allowance of direct manipulation of large composite objects, considerably more complex than mainstream languages like PASCAL, PL/I, and ALGOL.

There have been several implementations of variants of the language over the years. GNU SETL is an implementation that was designed to work well in a POSIX environment, to facilitate its use in a shell script. ISETLW, an interactive implementation of SETL was created by John Kirchmeyer and used to teach discrete mathematics. Other implementations include ASL, CIMS SETL, JSetL, PSETL, SETL2, and SETL-S. Proteus, a programming language in its own right, began as a variation of ISETL that supported thread and data parallelism.

While the focus of this category is on SETL, variants, and implementations of the language may be appropriate for this category, as well. SETL user groups, forums, tutorials, or guides may also be listed here.



Recommended Resources

Search for SETL on Google, Bing, or Yahoo!