Ebben a fejezetben egy-kettő ismert, és a programozást oktató könyvekben nagyon gyakran használt példát próbáltunk összegyűjteni a teljesség igénye nélkül. (Megj.: Minden program egy erőforrás, melyet az erőforrás nevének megfelelő nevű .sr kiterjesztésű fájlba kell elhelyezni. Pl.: Ha hello az erőforrásunk neve, akkor ezt a hello.sr fájlba kell megírni!
A példaprogramok forráskódja letölthető innen (zip fájl).
Szerző neve: Laki Sándor
Készítés éve: 2006
Használt fordítóprogram: SR compiler
A legelemibb program, már már elmaradhatatlan :-)
Számoljuk ki N faktoriálisát!
Nos, ez már egészen szép kis program. Két mátrixot - A-t és B-t - szorzunk össze. Először mindkettőt a parancssori argumentumban megadott fájlokból betöltjük A és B NxN-es mátrixokba. Majd a process utasítás nxn db végrehajtási szálat hoz létre a C(i.j)-k számolására. A final blokk a matrix erőforrás befejeződésekor fut le. Jelen esetben, amikor minden compute process végzett a rábízott munkával.
A getarg(i,j) az i-edik parancssori argumentumot a j-be másolja.
Ebben a fejezetben az adatabsztrakció egy esetére mutatunk példát. Eddig nem beszéltünk róla, de minden erőforrás egy működési sémát ír le, így alkalmas adatabsztrakcióra. Csak a főprogramhoz, a fő erőforráshoz jön létre automatikusan konkrét példány. Arról sem volt szó, hogy az erőforrások rendelkeznek egy interfésszel, publikus résszel. A példánkban ez a 1-5 sorok közötti rész. Itt típus definíciók, konstansdeklarációk és operációdeklarációk szerepelhetnek. Jelen esetben a push, pop függvényként hívhatók.
Nézzük hogyan tudjuk használni más egységből a vermünket:
Nézzük mit is kaptunk ezzel! Először is az import Stack -kel jelezzük, hogy használunk egy másik fordítási egységben levő erőforrást, nevezetesen a Stack-et. Az x változó típusa a Stack publikus részében definiált result felsorolási típus lesz. Látható, hogy pontozással/minősítéssel hivatkozhatunk ezen típusra. Eztán deklarálunk két capability-t a Stack-re. Ezek egyszerű referenciák lesznek. Kezdetben nincs hozzájuk objektum rendelve. A 6. sorban hozzuk létre a tényleges Stack-példányokat. Látható, hogy itt meg kell adni a diszkriminánsok konkrét értékeit. Az s1 10-es míg az s2 20-as méretű verem lesz. Ezek után az s1 és s2 -re alkalmazhatjuk a Stack publikus részében deklarált operációkat.(8-10.sor) Itt is a pontozott alak használatos.