Afregne

Afregne
Sprog klasse programmeringssprog
Dukkede op i 1969
Udvikler Courant Institut for Matematiske Videnskaber
Internet side setl.org

Setl ( SETL ; fra det engelske  set language  - language of sets ) er et programmeringssprog fokuseret på at arbejde med sæt , udviklet i slutningen af ​​1960'erne af en gruppe af New York University professor Jacob Schwartz .

Sprogets syntaks indeholder operationer, der giver dig mulighed for at manipulere sæt - inklusion, ekskludering, medlemskabstestning, universalitet og eksistenskvantatorer, iteratorer , der giver dig mulighed for at behandle hvert element i sættet, og så videre. Ud over sæt understøtter sproget arbejde med bestilte sæt - tupler .

Sproget fik ikke stor udbredelse, men der var en vis stigning i popularitet i 1970'erne - 1980'erne i Sovjetunionen: Under et besøg i USSR i 1972 lykkedes det Schwartz at interessere en række udviklere fra Novosibirsk i sproget , hvilket markerede begyndelsen på flere års samarbejde mellem New York og Novosibirsk grupper af programmører og matematikere. Som følge heraf blev sproget implementeret på BESM-6 , ES COMPUTER , NORD [1] , arbejdet med sproget fortsatte indtil 1985-1989 og blev aktivt brugt i forskning i kunstig intelligens . Settles ideer er lånt i undervisningssproget Rapira og Starset ( IPS RAS , 1991).

I USA blev sproget implementeret på Burroughs -maskiner . Brugt i tidlige implementeringer af Ada compileren .

I slutningen af ​​1990'erne blev en anden version af sproget, SETL2, skabt på New York University, som var bagudkompatibel med den originale version.

En række sprogideer er nedfældet i moderne programmeringssprog, blandt dem er den direkte forgænger til Python, ABC -sproget [2] .

Eksempler

Et af sprogets egenskaber er en af ​​de første implementeringer af listeinkluderingsnotationen ; for eksempel, for at udskrive alle primtal fra 2 til Nfølgende udtryk bruges:

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

Traditionel procedurenotation understøttes, for eksempel til faktorberegning:

procedure faktoriel ( n ) ; returner hvis n = 1 1 ellers n * faktoriel ( n - 1 ) ende if ; end factorial ;

på samme tid, på grund af tilstedeværelsen af ​​foldningsoperationer på sættyper, kan udtrykket for faktorialet skrives kompakt:

*/[1..n]

Noter

  1. Dannelse af Novosibirsk programmeringsskole (mosaik af minder). / Ed. I.V. Pottosina. - N .: Institut for Informatiksystemer. A. P. Ershova SO RAN, 2001. — S. 106-113. Arkiveret 28. juni 2021 på Wayback Machine
  2. Pythons forgænger, ABC, var inspireret af SETL — Lambert Meertens tilbragte et år med SETL-gruppen på NYU, før han kom med det endelige ABC-design! — Guido van Rossum , [1] Arkiveret 14. maj 2011 på Wayback Machine

Litteratur

  • Schwartz, Jacob T., "Sætteori som sprog for programspecifikation og programmering." 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, RBK, Dubinsky, E. og Schonberg, E., Programming With Sets: An Introduction to SETL, 1986. ISBN 0-387-96399-5 .
  • David Yakovlevich Levin, Alexander Semenovich Narignani. Udviklet DBMS som et multi-level system baseret på SETL sproget. 22 s 20 cm. Novosibirsk Computing Center SO AN USSR 1982.
  • Super-højt niveau sprog SETL og dets implementering (til BESM-6 computere) / D. Ya. Levin; Rep. udg. A. P. Ershov 160 s 20 cm Novosibirsk Nauka Sib. afdeling 1983

Links