Mutatók
A biztonságkritikus rendszerek jelentősen korlátozzák a mutatók használatát az azokkal járó veszélyek miatt. (memóriaszivárgás, hibás (lógó) vagy nem megengedett hivatkozások) Az Ada nyelv tervezésénél gondoltak ezekre a veszélyekre, és a nyelv szabályait úgy alakították ki, hogy ezen a téren is minimalizálják a programozási hibákból eredő kockázatot. Ezért a nyelv access típusa különbözik egy egyszerű (fizikai) pointertől, azzal ellentétben erősen típusos! Ez azt jelenti, hogy egy adott típusú mutatónak deklarált mutató csak a deklarációjában megadott típusú „dolgokra” mutathat, sőt bizonyos esetekben ezt csak a mutatott „dolog” beleegyezésével teheti meg.
A mutatók használatának egyik elsődleges célja, hogy megkönnyítse a változó méretű objektumok kezelését. (Gondoljunk a tömbök/stringek használatára!)
Az Ada mutatók erős típusossága biztosítja, hogy egy mutató véletlenül soha nem hivatkozhat más típusra csak a bázistípusára. (A haladó részben részletesebben kitérünk majd erre.) Ennek biztosítása érdekében a mutatott típus élettartamának legalább „olyan hosszúnak” kell lennie mint a mutató típus élettartamának!
Bizonyos megvalósításokban szemétgyűjtő mechanizmus áll a programozók rendelkezésére, amely a mutató típus élettartamához/láthatóságához kötött. Másfelől a programozónak több lehetősége is van a dinamikusan lefoglalt memória felszabadítására. Hamarosan látunk erre is egy példát.
Megjegyezzük, hogy minden mutató típusnak van egy közös típusértéke a null. Ha nem adunk meg egy mutató típusú változó deklarációjakor kezdőértéket, akkor az automatikusan null-ra inicializálódik!
mutatok.adb