SETL

SETL

SETL est un langage de programmation de très-haut niveau basé sur la théorie mathématique des ensembles. Il a été à l'origine développé près Jacob T. Schwartz (en) au Courant Institute of Mathematical Sciences de la NYU.

SETL fournit deux types de données de base: les ensembles non ordonnés et les suites (appelées également tuples). Les éléments des ensembles et des tuples peuvent être de n'importe quel type arbitraire, y compris les ensembles et les tuples eux-mêmes. Le fonctions sont fournis en tant qu'ensembles de paires (c.-à-d., tuples de longueur 2) et peuvent avoir des domaines et de codomaines de types arbitraires. Les opérations primitives dans SETL incluent, entre d'autres, l'appartenance ensembliste, l'union, l'intersection et la puissance d'ensembles. SETL permet d'exprimer des expressions booléennes quantifiées construites en utilisant le calcul des prédicats du premier ordre, les quantificateurs universels et quantificateurs existentiels. SETL fournit aussi plusieurs itérateurs pour produire diverses boucles sur des structures de données.

Sommaire

Échantillon de code

Retourner tous les nombres premiers inférieurs à n :

  NbPremiers := func(n);
     return {x: x in {2..n} | forall y in {2..x-1} | x mod y /=0};
  end;
  NbPremiers(100);

La notation est semblable à la compréhension de liste.

Historique

ABC, le précurseur de Python, a été inspiré par SETL à Lambert Meertens (en), qui a passé une année avec le groupe de SETL à NYU avant de proposer la version finale d'ABC.

Bibliographie

  • Jacob T. Schwartz, Set Theory as a Language for Program Specification and Programming. Courant Institute of Mathematical Sciences, New York University, 1970.
  • Jacob T. Schwartz,On Programming, An Interim Report on the SETL Project, Computer Science Department, Courant Institute of Mathematical Sciences, New York University (1973).
  • Jacob T. Schwartz, R. B. K. Dewar, E. Dubinsky, E. Schonberg, Programming With Sets: An Introduction to SETL, 1986 (ISBN 0-387-96399-5)

Voir aussi

Article connexe

ISETL, une variante de SETL

Liens externes



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article SETL de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • SETL — (Set Language, engl. für Mengensprache) ist eine höhere Programmiersprache die auf der Mengenlehre der Mathematik aufbaut. Sie wurde 1969/70 von Jack Schwartz am Courant Institute of Mathematical Sciences of New York University entwickelt. Als… …   Deutsch Wikipedia

  • setl — setl(e obs. forms of settle n. and v …   Useful english dictionary

  • 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… …   Wikipedia

  • SETL — Сетл (SETL) язык программирования, ориентированный на работу со множествами, разработанный в конце 1960 х годов группой профессора Нью йоркского университета Джекобом Шварцем (Jacob Schwartz). Наименование языка SETL сокращение от SET Language.… …   Википедия

  • SETL — abbr. SEt Theory Language (New York Uni.) Syn: SetL …   United dictionary of abbreviations and acronyms

  • SetL — abbr. SEt Theory Language (New York Uni.) Syn: SETL …   United dictionary of abbreviations and acronyms

  • Setl Group — Тип Общество с ограниченной ответственностью Год основания 1994 Расположение …   Википедия

  • SETL — Set Language Hochsprache, entwickelt von Jack Schwartz in den 70er Jahren …   Acronyms

  • setl — n ( es/ ) 1. that on which one sits, a settle, seat, place to sit; [Nth pl as]; 1a. an official seat of a king, judge, etc., a throne, judgment seat; fore setle before the throne; 1b. metaph., seat, place, position; 1c. in reference to the… …   Old to modern English dictionary

  • SETL — Set Language Hochsprache, entwickelt von Jack Schwartz in den 70er Jahren …   Acronyms von A bis Z

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”