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.)
Az alprogramok ezen fajtája bináris műveletet valósít meg. A műveletnek kommutatívnak és asszociatívnak kell lennie. Csak globálisan lehet őket deklarálni, és fő célja az adatok feldolgozása (lehetőleg) logaritmikus időben.
A REDUCTION-höz hasonlóan ez is egy bináris műveletet valósit meg és szintén csak globálisan deklarálható. Tulajdonképpen összehasonlítást végez és kiválaszt egy csomópontot, élt, hálót egy csoportból. A tervezési elv, hogy tényleg véletlenszerűen, történjen ez a kiválasztás (a törzsben leírtak szerint), a párhuzamos futtatásnak megfelelően.
Szintén a párhuzamosságot támogató eszközök egyike. Célja, hogy újra egyesítse a replikált
hálókat, háló elemeket. Bár igaz, hogy a replikálás hálókra vonatkozik, a merge segítségével
ennek inverze az elemekig levihető, és azok mondják meg a tevékenységet, akikre vonatkozik.
Ha egy hálóra elvégezzük a merge eljárást, akkor az elemeire, mint egy egyszerű eljárás meghívódik.
Így a cél objektum elemei a ME minősített névvel érhetők el, a forrás objektumok, amiket össze
szeretnék fűzni a YOU kulcsszó segítségével CONST-ként érhetők el.
Ha egy típusra nem definiált a Merge eljárás, akkor a példányokból véletlenszerűen
történik a kiválasztás.
Replikálásról később lesz szó.