Share on Facebook Share on Twitter Email
Answers.com

SETL

 

(SET Theory Language) A programming language developed by Jack Schwartz in the early 1970s. It is based on set theory and used for mathematical and telecommunications applications. See ALICE and set theory.

Download Computer Desktop Encyclopedia to your iPhone/iTouch

Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Wikipedia: SETL
Top
SETL
Paradigm multi-paradigm: imperative, procedural, structured, Object-Oriented
Appeared in 1969
Designed by Jack Schwartz
Developer Courant Institute of Mathematical Sciences
Typing discipline Dynamic
Influenced ProSet, ABC, Slim
Website http://setl.org/

SETL (SET Language) is a very-high level programming language based on the mathematical theory of sets. It was originally developed by Jack Schwartz at the NYU Courant Institute of Mathematical Sciences in the late 1960s.

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 quantifiers of first-order predicate logic.

SETL provides several iterators to produce a variety of loops over aggregate data structures.

In the 1970s, SETL was ported to the BESM-6, ES EVM and other Russian computer systems.

David Bacon, who was previously a PhD student in NYU with Jack Schwartz still actively maintains the compiler for SETL and its website.

Contents

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.

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]

History

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!
 

See also

References

  1. ^ http://mail.python.org/pipermail/python-dev/2000-August/008881.html

Additionally:

  • 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


 
 

 

Copyrights:

Computer Desktop Encyclopedia. THIS DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2010 The Computer Language Company Inc.  All rights reserved.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "SETL" Read more