Usadit | |
---|---|
Jazyková třída | programovací jazyk |
Objevil se v | 1969 |
Vývojář | Courantův ústav matematických věd |
webová stránka | setl.org |
Setl ( SETL ; z anglického set language - language of sets) je programovací jazyk zaměřený na práci s množinami , vyvinutý koncem 60. let minulého století skupinou profesora New York University Jacoba Schwartze .
Syntaxe jazyka obsahuje operace, které vám umožňují manipulovat s množinami – zahrnutí, vyloučení, testování členství, kvantifikátory univerzálnosti a existence , iterátory, které vám umožní zpracovat každý prvek množiny, a tak dále. Kromě množin jazyk podporuje práci s uspořádanými množinami - n-ticemi .
Jazyk se nedočkal široké distribuce, ale v 70. - 80. letech v Sovětském svazu došlo k určitému nárůstu popularity: během návštěvy SSSR v roce 1972 se Schwartzovi podařilo zaujmout o jazyk řadu vývojářů z Novosibirsku , kteří znamenal začátek několika let spolupráce mezi newyorskou a novosibirskou skupinou programátorů a matematiků. V důsledku toho byl jazyk implementován na BESM-6 , ES COMPUTER , NORD [1] , práce na jazyku pokračovaly až do let 1985-1989 a byl aktivně využíván ve výzkumu umělé inteligence . Settleovy myšlenky jsou vypůjčeny ve vzdělávacím jazyce Rapira a Starset ( IPS RAS , 1991).
V USA byl jazyk implementován na strojích Burroughs . Používá se v raných implementacích kompilátoru Ada .
Koncem 90. let byla na New York University vytvořena druhá verze jazyka SETL2, která byla zpětně kompatibilní s původní verzí.
Řada jazykových myšlenek je ztělesněna v moderních programovacích jazycích, mezi nimi je přímý předchůdce Pythonu, jazyk ABC [2] .
Jednou z vlastností jazyka je jedna z prvních implementací zápisu zahrnutí seznamu ; například pro tisk všech prvočísel od 2 do Nnásledujícího výrazu se používá:
tisk ( [n v [2..N] | pro všechny m v {2..n - 1} | n mod m > 0] )Tradiční procedurální zápis je podporován například pro faktoriální výpočet:
faktoriál procedury ( n ) ; return if n = 1 then 1 else n * faktoriál ( n - 1 ) end if ; koncový faktoriál ;zároveň, díky přítomnosti konvolučních operací na typech množin, lze výraz pro faktoriál zapsat kompaktně:
*/[1..n]
Programovací jazyky | |
---|---|
|