Definíciója:
A nyelvben megtalálhatók az egyszerű utasítások, mint értékadás, vezérlésátadás, de megtalálható
a párhuzamosságot és a halók felépítését segítő eszközök is.
Az utasításokat a ; választja el. Megengedett az üres utasítás is,de különösebb szerepe nincs.
C-hez hasonlóan nemcsak az egyszerű értékadás használható (:=), hanem a += -= *= /= %= is.
Csomópontnak értékét csak az élek csatlakozása előtt lehet adni. Ennek oka, hogy csomópontok
saját életet élnek, hát gondoskodjanak ők minderről.
Az értékadáshoz tartozik még az I/O művelet is. Ennek megkülönböztetésére, mint már említésre került,
a fordítók platformfüggése miatt volt szükséges.
Object <-- Object Object --> Object
Prioritás | Operátor | Leírás |
1 | ?: | összevont if-then-else |
2 | OR | logikai or |
2 | XOR | logikai xor |
3 | AND | logikai and |
4 | = <> < > | összehasonlítás |
4 | <= <= | összehasonlítás |
4 | IN | Intervallum eleme |
5 | BITOR | Bittenkénti or |
5 | BITXOR | Bittenkénti xor |
5 | ... | intervallum létrehozása |
6 | BITAND | Bittenkénti and |
7 | LSHIFT | Balra tolás |
7 | LRIGHT | Jobbra tolás |
8 | + - | Összeadás kivonás |
9 | * / | Szorzás osztás |
11 | ** | Hatványozás |
11 | NOT | Logikai not |
11 | BITNOT | Bittenkénti not |
11 | - | Aritmetikai negáció |
11 | MIN | Intervallum alsó határa |
11 | MAX | Intervallum felső határa |
11 | RANDOM | Véletlenszám |
11 | Type | Explicit típus konverzió |
12 | [] | Tömb/Group eleme, párhuzamos változó létrehozása |
13 | . | Recor eleme |
14 | () | Zárójelezés |
Adatokra a nevükkel, esetleg minősített nevükkel utalhatunk. Lehetőség van azonban kulcsszavas minősítésre is.
MEObjektumok alprogramjaiban használható és azt az objektumot jelenti, amire a hívás vonatkozott.
Hasonlít a C++ this kulcsszavára.
YOU Használata a WTA, REDUCTION, MERGE esetében van (lsd. később). Ilyenkor a "második" objektum elemeit lehet
segítségével elérni.
INDEX Csoportokra, tömbökre kiadott utasításoknál (lsd. alprogramok hívása) használható és visszaadja, hogy
hányadik elemről van szó.
Az alprogramokat többféle csoportba oszthatjuk be: eljárás, függvény, művelet. Az eljárások természetesen jellegükből fakadóan objektumok tagjai is lehetnek, míg műveleteket csak globálisan definiálhatunk. Ennek ok, hogy a definiálható műveletek fordítása a párhuzamosság minél magasabb fokú kihasználtságát kísérli meg.
Az alprogramok definiálása a Modula-2 programnyelvhez hasonlóan történik. Eljárás esetén
a PROCEDURE kulcsszó után a név, a paraméterlista, az IS kulcsszó, majd az utasítások és
az azt záró END. A paraméterlistában lehetőség van érték szerint (alapértelmezett) és cím
szerint (VAR kulcsszó) átadni a paramétereket. (Pontosabban, hogy érték , vagy érték-eredmény szerinti
a paraméterátadás fordító függő - ennek oka, hogy, ez a szerző szerint függhet a párhuzamos rendszertől,
és így szabadságot ad, az optimalizáláshoz.)
További lehetőség a CONST kulcsszó használata, melynek hatására a paraméter értékét nem lehet megváltoztatni.
Ha az alprogram egy objektumhoz tartozik (Node, Connection, Network), akkor a ME
kulcsszóval a hívó objektum elemeit lehet elérni.
Függvény esetén a visszatérési érték típusával kell kezdeni a deklarációt, melyre a
rekordnál elmondottak vonatkoznak. Érdekesség, hogy, míg függvénynek is lehet VAR paramétere
és így azokat megváltoztathatja, a ME kulcsszóval elérhető elemeknek csak az értékét
kérdezheti le.
A CuPit, lehetőséget ad az EXTERN kulcsszó használatára, ami csak deklarálja, de nem
definiálja az alprogramot. (Az eljárásnak természetesen definiáltnak kell lenni valahol
később.)
Mivel ez egy művelet, melyet objektumok halmazán szándékozunk végrehajtani, szintén párhuzamos
futást eredményez.
Szintaxisa:
Az elv a REDUCTION utasításhoz hasonló. A
WTA obj:d.op:p(param)eredménye:
MERGE obj;Jelentéséről már volt szó.
Alprogramok törzsében adható meg. Szerepe, az alprogramból történő kilépés, a visszatérési érték megadása.
Függvények esetén mivel ez az egyetlen mód, hogy megadjuk a visszatérési értéket, így legalább egy RETURN
kulcsszónak szerepelnie kell a törzsben.
A többi programozási nyelvhez képest nem ad semmi újat.
A teljes definíció a következő: