A Setl programozási nyelv

Feltételes utasítások

Elágazás

A SETL esetén az elágazás a következőképpen néz ki:

if feltétel then utasitas; utasitas; utasitas; else utasitas; utasitas; utasitas; end if;

Az utasítás blokkokat pontosvesszővel választjuk el.

Az elágazást a következő utasításokkal lehet lezárni:

end; end if; end if tokens;

Mivel az elágazás maga is egy blokk, így annak végére is ki kell rakni a pontosvesszőt.

Esetszétválasztásos elágazás

Esetszétválasztás esetén a case elágazást használjuk:

case kifejezés of (felt1): blokk1 (felt2): blokk2 else blokk end CASE; $ vagy end; end case tokens;

Ciklus

Ciklusok esetén beszélhetünk loop, for, while ciklusokról.

loop iterátor do blokk end loop; $ vagy end; vagy end loop tokens; $egy másik alternatíva ( iterátor ) blokk end; $ vagy end tokens; $itt az iterátor helyére írható 'for x in set' számláló ciklus, vagy 'while felt. do' ciklus $mindkét forma az utasítás blokkok ismételt végrehajtását eredményezi, az iterátor ellenörzése alatt $a ciklus belsejében bármely utasítás használható, ahogyan a következő két utasítás is: $a ciklus törzsében levő maradék utasításokat kihagyja, majd folytatja a következő iterációval continue; continue tokens; $a ciklus terminálását eredményezi quit; quit tokens;

Kövezkezzék egy példa egy teljes SETL programra. Bár nem egy túl hatékony program, de szemléltetésnek megteszi.

program primszam; $ Ez a program kilistázza a kapott értékek közül a prímszámokat. read(n); $ beolvassa az értékeket primszam := { }; $ definiálunk egy halmazt a kimeneti értékeknek p := 2; $ beállítjuk a kezdeti értéket a vizsgálathoz $ leellenőrizzük, hogy a beolvasott érték prímszám-e loop while p < n do $ addig megy a ciklus, amíg p kisebb mint n if notexists t in primszam | p mod t = 0 then print(p); $ nem osztója, tehát prím primszam with:= p; $ hozzáajuk a primszam halmazhoz end if; p := p + 1; $ továbblépünk a következő értékre end loop; end program primszam;

A SETL nyelven írt programok legfőbb jellemzője, hogy valamilyen összetett adatszerkezettel dolgoznak. A fordítóprogram ezeket egy fajta módon kezeli le, és nem veszi figyelembe, hogy milyen reprezentációval lehetne a hatékonyságot növelni. A SETL viszont egy adatrperezentációs alnyelvvel gondoskodik ennek a problémának a megoldásáról.