Az utasítások végrehajthatók, egy algoritmust adnak meg. Az egyszerű utasítás olyan utasítás, aminek semelyik része sem tartalmaz másik utasítást. Ilyenek: az értékadó utasítás, az eljáráshívás, a kilépő utasítások, az állítások, és az üres utasítás.
A nyelv legalapvetőbb utasítása az értékadó utasítás, amely egy kifejezés értékét hozzárendeli egy változóhoz. A kifejezések operandusokból, műveletekből és függvényekből állnak. Azonos precedenciájú műveletek kiértékelése balról jobbra történik. Ha T az U típusú elemek halmaza, akkor a T()az üres halmazt, a T(all) az U összes elemét, a T(x..y) az x és az y közti elemeket jelöli.
Ha a fordító nem tudja ellenőrizni, hogy egy kifejezésben túlcsordulás történt-e, egy érvényességi állítást helyez el a programban. Az operandusok típusának a specifikációban szereplő típussal kell megegyeznie, vagy annak altípusa lehet. Az értékadásnál a két oldal típusának meg kell egyeznie, a következő kivételek figyelembevételével:
Az összetett utasítások más utasítások konstrukciójából állnak, amiket szekvenciálisan, feltételesen, vagy ismételve hajthatunk végre.
A szekvenciális végrehajtásnál blokkokat hozhatunk létre(begin..end), melyekben új változókat deklarálhatunk, ezáltal egy belső láthatósági kört teremtve. Létrehozhatunk blokkokat, amik deklarációk és utasítások egymáshoz rendelésére szolgálnak. Egy változó láthatósági köre lehet egy blokk, egy if ág, egy case eset, egy loop törzs, vagy egy modul(Az export ill. import kulcsszavakról (wordSymbol) az absztrakt adatszerkezeteknél lesz szó.).
Két feltételesen elágazó utasítás van, az if és a case. Az if a szokásos, megadható több elseif és egy else ág is benne.
A case több esetből választ ki egyet a szelektor értéke alapján, amelyre csak az a kikötés van, hogy manifest constant legyen. Ha a cimkék között nem szerepel a szelektor értéke, és nincs otherwise ág, akkor a program hibás.
A ciklusszervező utasítások a loop és a for. A loop folyamatosan ismétli a törzs végrehajtását, amíg egy exit utasítás ki nem lép belôle. A for utasítás végigmegy egy megadott értékkeszleten egy paraméterrel, és annak minden értékével végrehajtja a törzset. Az értékkészletet megadhatja egy modultípus, egy indextípus, vagy egy halmaz. A modultípusban három kötelező komponensnek kell szerepelni: a value és stop változóknak, és a Next eljárásnak, melyeket exportálni kell. Indextípus esetén meg lehet adni decreasing kapcsolót is, ami hatására fordított sorrendben járja be a ciklus az indexeket.
Nézzük példának a for-ciklusokat, melyek visszaköszönnek az Adában is: