Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

SETL

From Wikipedia, the free encyclopedia
Programming language
"Setl" redirects here. For the indigenous location in Canada, seeBridge River Rapids.
SETL
Paradigmmulti-paradigm:imperative,procedural,structured,object-oriented
Designed by(Jack)Jacob T. Schwartz
DeveloperCourant Institute of Mathematical Sciences
First appeared1969; 57 years ago (1969)
Stable release
1.1 / January 7, 2005; 21 years ago (2005-01-07)
Typing disciplineDynamic
PlatformCDC 6600,CDC Cyber, DECVAX,IBM/370,Sun workstation,Apollo,BESM-6,ES EVM, others
Websitesetl.org
Influenced by
ALGOL 60
Influenced
SETL2,ISETL, SETLX, Starset,ABC

SETL (SET Language) is avery high-level programming language[1] based on the mathematicaltheory of sets.[2][3] It was originally developed at theNew York University (NYU)Courant Institute of Mathematical Sciences in the late 1960s, by a group including (Jack)Jacob T. Schwartz,[1][3] R.B.K. Dewar, and E. Schonberg.[1] Schwartz is credited with designing the language.[4]

Design

[edit]

SETL provides two basic aggregate data types: (unordered)sets, andtuples.[1][2][5] The elements of sets and tuples can be of any arbitrary type, including sets and tuples themselves, except the undefined valueom[1] (sometimes capitalized:OM).[6]Maps are provided as sets ofpairs (i.e., tuples of length 2) and can have arbitrary domain and range types.[1][5] Primitive operations in SETL include set membership, union, intersection, and power set construction, among others.[1][6]

SETL provides quantified boolean expressions constructed using theuniversal andexistential quantifiers offirst-order predicate logic.[1][6]

SETL provides severaliterators to produce a variety of loops over aggregate data structures.[1][7]

Examples

[edit]

Print all prime numbers from 2 toN:

print([n in [2..N] | forall m in {2..n - 1} | n mod m > 0]);

The notation is similar tolist 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

[edit]

Implementations of SETL were available on theCDC 6600,CDC Cyber, DECVAX,IBM/370,Sun workstation andApollo.[8]In the 1970s, SETL was ported to theBESM-6,ES EVM and other Russian computer systems.[9]

SETL was used for an early implementation of the programming languageAda, named the NYU Ada/ED translator.[10] This later became the first validated Ada implementation, certified on April 11, 1983.[11]

According toGuido van Rossum, "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!"[12]

Language variants

[edit]

SET Language 2 (SETL2), a backward incompatible descendant of SETL, was created by Kirk Snyder of the Courant Institute of Mathematical Sciences atNew York University in the late 1980s.[13] Like its predecessor, it is based on the theory and notation of finite sets, but has also been influenced insyntax and style by the Ada language.[13]

Interactive SET Language (ISETL) is a variant of SETL used indiscrete mathematics.[14]

GNU SETL is a command-line utility that implements and extends SETL.[15]

References

[edit]
  1. ^abcdefghiSchwartz, J. T.; Dewar, R. B. K.; Schonberg, E.; Dubinsky, E. (1986).Programming with Sets. pp. v–vii, 2, 48, 53,57–58, 63, 113ff.doi:10.1007/978-1-4613-9575-1.ISBN 978-1-4613-9577-5.
  2. ^ab"GNU SETL Om".setl.org. Retrieved2024-04-24.
  3. ^abMarkoff, John (2009-03-04)."Jacob T. Schwartz, 79, Restless Scientist, Dies".The New York Times.ISSN 0362-4331. Retrieved2024-04-24.
  4. ^Schwartz, Jacob T.; Cantone, Domenico; Omodeo, Eugenio G. (2011).Computational Logic and Set Theory. pp. vii.doi:10.1007/978-0-85729-808-9.ISBN 978-0-85729-807-2.
  5. ^ab"Chapter 2".www.settheory.com. Retrieved2024-04-24.
  6. ^abc"Chapter 3".www.settheory.com. Retrieved2024-04-24.
  7. ^"Chapter 4".www.settheory.com. Retrieved2024-04-24.
  8. ^Schwartz, J.T.; Dewar, R.B.K.; Dubinsky, E.; Schonberg, E. (1986).Programming with sets: An Introduction to SETL. New York, New York: Springer-Verlag.ISBN 978-1-4613-9577-5.
  9. ^И.В. Поттосин, ed. (2001).Становление новосибирской школы программирования (мозаика воспоминаний) [Formation of the Novosibirsk school of programming (mosaic of memories)](PDF) (in Russian). Новосибирск: Институт систем информатики им. А. П. Ершова СО РАН. pp. 106–113.
  10. ^Dewar, Robert B. K.; Fisher Jr., Gerald A.; Schonberg, Edmond; Froelich, Robert; Bryant, Stephen; Goss, Clinton F.; Burke, Michael (November 1980). "The NYU Ada translator and interpreter".Proceeding of the ACM-SIGPLAN symposium on Ada programming language – SIGPLAN '80. Vol. 15. pp. 194–201.doi:10.1145/948632.948659.ISBN 0-89791-030-3.S2CID 10586359.
  11. ^SofTech Inc. (1983-04-11)."Ada Compiler Validation Summary Report: NYU Ada/ED, Version 19.7 V-001". Waltham, Massachusetts. Archived fromthe original on June 7, 2017. Retrieved2010-12-16.
  12. ^Python-Dev: SETL (was: Lukewarm about range literals)
  13. ^ab"SETL2 – EDM2".www.edm2.com. Retrieved2024-04-24.
  14. ^Baxter Hastings, Nancy; Dubinsky, Ed; Levin, Gary (1989).Learning discrete mathematics with ISETL. New York: Springer-Verlag.ISBN 978-0-387-96898-8.
  15. ^"GNU SETL".setl.org. Retrieved2024-04-24.

Further reading

[edit]
  • 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

[edit]
National
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=SETL&oldid=1333004915"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp