1.5. fejezet, Eljárás alapú fejlesztés

Annak ellenére, hogy a G2 közvetlenül támogatja külső C rutinok használatát, az eljárások programozása nyelvezetének alapjaiban mégis a Pascal nyelvhez hasonló. Eljárást létrehozni egy workspace new-definition/procedure/procedure menüjéből lehet. A tárolás ugyancsak egy objektumban történik. Szerkesztés után lefordításra kerülnek, és beépülnek a tudásbázisba. A C és C++ -al ellentétben az eljárást csak neve azonosítja. Egy tudásbázison belül nem szerepelhet két azonos nevű, ellenkező esetben csak az először beépítésre került eljárás használható. Az eljárástörzs után a hibák lekezelését szolgáló utasítások a hibakezelő blokkba helyezhetők el. Eljárás indítása eljárásból "start" és "call" parancsokkal történhet. Míg a "start" használatakor a hívó eljárás futása folytatódik, addig a "call" a hívó eljárás végrehajtását a hívott eljárás lefutásáig felfüggeszti. Visszatérési érték fogadását a "call" teszi lehetővé. Szabályból eljárást indítani csak a "start" paranccsal lehetséges.

procedure-name ( [argument: type ]  [, ...] )
[ = ( type [, ...] ) ]
[local-name [, ...]: type
[= value-expression]; ] ...
begin
            [statement-label:] statement [; ...]            [{ notes }]
end
[on error (local-name)
            [label:] statement [; ...]
end]