<utasítás>::= <ALGOL feltétel nélküli utasítás>| <feltételes utasítás>| <for utasítás>|
<INSPECT utasítás>| <while utasítás>
<címke nélküli alaputasítás>::= <átadó utasítás>| <go to utasítás>| <üres utasítás>| <eljáráshívás>|
<ütemező utasítás>| <objektumgenerátor>
<feltételes utasítás>::= <ALGOL feltételes utasítás>| <IF feltétel><INSPECT utasítás>| <IF feltétel><while utasítás>
<átadó utasítás>::= <értékadó utasítás>| <hivatkozásadó utasítás>
<baloldal 1>::= <változó>| <eljárásazonosító>| <egyszerű szövegkifejezés>
<jobboldali érték>::= <érték típusú kifejezés>| <szövegkifejezés>| <értékadó utasítás>
<értékadó utasítás>::= <baloldal 1>:= <jobboldali érték>
<baloldal 2>::= <változó>| <eljárásazonosító>
<jobboldali hivatkozás>::= <hivatkozási típusú kifejezés>| <hivatkozásadó utasítás>
<hivatkozásadó utasítás>::= <balolda 2>:- <jobboldali hivatkozás>
Az értékadó utasítás jele a ":=" operátor. Egy érték átadását jelöli ki az utasítás bal oldalán szereplő érték típusú változónak, szövegtárolónak vagy függvényeljárás azonosítójának. A hivatkozásadó utasítás jele a ":-" operátor. A hivatkozásadó utasítás a bal oldalon szereplő hivatkozás típusú változónak, ill. függvényeljárás azonosítójának szóló hivatkozásadást jelöli ki. Bármely, az átadás bal oldalán szereplő vagy annak részét képező kifejezés a jobboldali rész kiértékelését megelőzve értékelődik ki. Az értékadó utasítás objektumokra nem használható.
Objektumhivatkozások átadásakor három eset lehetséges:
Az utasítások elválasztása ';'-vel történik;
Egyirányú elágazásra a szokásos szerkezetet használhatjuk.
Többirányú elágazásra az else if szerkezet használható.
Ha az elágazás ágai több utasítás szekvenciájából állnak, akkor azokat begin ... end blokkba kell zárni. Ennek használatával elkerülhető az if else összetartozásának problémája. Egy változó, vagy kifejezés lehetséges értékei alapján történő "case" típusú elágazásra nincs lehetőség.
A ciklusfej végrehajtásának eredményétől függően a ciklustörzset egyszer sem, vagy pedig egymás után többször is végre kell hajtani. A törzs minden egyes végrehajtását megelőzi a ciklusváltozó módosítása és annak vizsgálata, hogy a cikluslista végrehajtás alatt lévő eleme nem merült-e már ki. A ciklusváltozó egyszerű változó, amely nem lehet eljárásazonosító és névszerint átadott formális paraméter. Értéke a for utasítás elhagyásakor az utolsó átadási művelet eredményét jelöli. A ciklustörzs mindig blokkszerűen működik, ezért a törzs elején, vagy azon belül definiált címkékhez a ciklustörzsön kívülről nem lehet hozzáférni.
A for ciklus rendkívül gazdag módon támogatja a ciklusváltozó értékeinek beállíthatóságát. Tekintsük az alábbi összetett példát:
Az eredmény a következő:
1 13 20 30 40 70 71 72 73 74 75 100 150 200 250 1000 1500
A while utasítás törzse olyan programrész, amelyet egyszer sem, vagy pedig többször kell végrehajtani. Ha a kiértékelt logikai kifejezés true, akkor a ciklustörzs végrehajtódik, majd a vezérlés ismét visszatér a while utasítás kezdetére, ahol a logikai kifejezés újra kiértékelődik. Ha a kifejezés false, akkor a vezérlés a while utasítást követő programrészre kerül.
Bármely időpontban jelölje PVP (Program Végrehajtási Pont) azt a programpontot, ahol a program végrehajtása pillanatnyilag tart. Ez a pont egy blokkpéldányhoz tartozik. A helymegjelölő kifejezés valamely blokkpéldányon belül egy programpontot definiál. A goto utasításnak egy ilyen helymegjelölő kifejezést kell megadni.
A prefixes blokk olyan összetett objektumnak egy példánya, amelynek prefix része a blokk prefixe által azonosított osztály objektuma, fő része pedig maga a blokk. A prefixes blokk létrehozásával kapcsolatban két korlátozást kell betartani:
prefixes blokkban elérhetők a prefix_obj objektum műveletei.
Ez az utasítás szolgál a csatolás megvalósítására. Blokkszerűen viselkedik, a blokkban elérhetők a csatoló objektum attribútumai. Az utasításnak kétféle előfordulása lehet:
Ez egy olyan összetett objektumpéldány, melyben az X-ben deklarált attribútumok (adatok és algoritmusok) használhatók. Ha az X objektumkifejezésre X == none teljesül, akkor az otherwise ág fut le, különben utasítás_1. Ez lényegében a pont-jelölés általánosítása.
Ilyenkor kiértékelődik az X in osztály_1 kifejezés, és ha igaz, akkor végrehajtódik az utasítás_1. Ha nem, akkor a következő, X in osztály_2, majd így tovább, amíg nem talál egy igaz ágat. Az otherwise ág mindenképpen igaz lesz. Egy ág végrehajtása után a vezérlés az inspect utasítás mögé kerül.
Minősítés az Inspect kulcsszóval: