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 au Courant Institute of Mathematical Sciences de la NYU. Il existe une variante nommée ISETL (de l'anglais Interactive SET Language) permettant de faire de la programmation sur des ensembles mathématiques.
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. Les 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.
Échantillon de code
modifierRetourner 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
modifierABC, le précurseur de Python, a été inspiré par SETL à Lambert Meertens, qui a passé une année avec le groupe de SETL à NYU avant de proposer la version finale d'ABC.
Bibliographie
modifier- 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
modifierLiens externes
modifier- (en) About GNU SETL
- (en) The SETL programming language, par Robert Dewar
- (en) Site officiel d’ISETL
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « SETL » (voir la liste des auteurs).