Ismerkedés az Ada programozási nyelvvel
Általában a szakmai könyvek és írások, amikor egy új nyelvet kezdenek ismertetni az un. „Hello World” programmal kezdik. Ez Nekünk most nem elég. A legfontosabb, hogy amikor tanulunk valamit, akkor ne csak egy eszközzel ismerkedjünk meg, hanem annak használatáról is képet kapjunk. Azért, hogy a képernyőre írás ne csak egy eszköz legyen, hanem, hogy legyen valami célja is (már a kezdetektől fogva) elkészítjük az un. „alapprogram”-unkat.
Ez a program kiírja a képernyőre a „Program indul” majd alá a „Program vége” szövegeket. (Amennyiben lefordul, és lefut meggyőződhetünk az általunk használt fordítóprogram bizonyos részeinek helyes működéséről.)
Ez a program lesz az alapja minden itt bemutatásra kerülő példának. A továbbiakban ezek a kiírások minden programban szerepelni fognak. Miért fontos ez? Az Ada egy olyan programozási nyelv, amelynek a tervezésénél a biztonság az egyik elsődleges szempont volt. Ez kihat az egész nyelv logikájára.
Az Ada programok tesztelésére (esetleg helyességének bizonyítására) nagy hangsúlyt fektetnek a kritikus rendszerek készítésénél, ezért mi már az elején, foglalkozunk a tesztelhetőség kérdésével. (Egyelőre ez alatt azt értjük, hogy véleményünk szerint a program helyesen, és úgy működik, mint ahogyan azt mi szerettük volna.)
Gyakorlatlan programozók gyakran vétenek olyan hibát, ami végtelen ciklust eredményez. Egy olyan szekvenciális programnál, amely az utolsó sorában (vagy egyáltalán) nem tartalmaz kiírást, nehéz megállapítani, hogy azért nem ír ki semmit a képernyőre mert lefutott, és véget ért, vagy azért mert egy végtelen ciklusban tölti az idejét.
Az ilyen jellegű tesztelés szempontjából a legfontosabb, hogy tudatában legyünk mikor indul a programunk, és mikor fejeződik be…
Nézzük a példát! (alapprogram.adb)
with Ada.Text_IO; procedure alapprogram is begin Ada.Text_IO.Put_Line("Program indul"); Ada.Text_IO.Put_Line("Program vege"); end alapprogram;
Magyarázat:
A fenti program az alapprogram, amelynek megértése nem is olyan egyszerű, mint első ránézésre gondolnánk. Mielőtt bármit is tennénk próbáljuk ki a programot, győződjünk meg róla, hogy valóban az elképzelésink szerint működik… A fordítást (az általunk ajánlott Ada fordítóprogram telepítése után) parancssorból a gnatmake parancs segítségével tehetjük meg. (Amennyiben valamilyen fejlesztői környezetet használunk tanulmányozzuk annak dokumentációját! A fordítás és futtatás a fejlesztői eszközökkel kényelmesebbé tehető, de néha egy külső parancssor is hasznos lehet. A párhuzamos programozásnál láthatunk erre majd példát.) Fontos megjegyzés, hogy amennyiben az általunk ajánlott gnat fordítót használjuk a fájl nevének azonosnak kell lennie a benne található programegység nevével. (Megjegyezzük, hogy az Ada programegységei alatt a következőket értik: alprogramok (eljárás, függvény), csomagok, generikus/sablon egységek, taszkok, védett egységek) (Tehát ezt a fájlt mivel egy főprogramot - azaz paraméter nélküli eljárást tartalmaz - alapprogram.adb néven kellett elmentenünk!)
A program első sorában a with kulcsszó/foglalt szó található. Ennek segítségével tudjuk használni a más fájlokban (fordítási egységekben/könyvtári egységekben) megírt programegységeket. A mostani egyszerű példánkban csak a képernyőre szeretnénk kiírni, ezért kizárólag az Ada.Text_IO csomagot „adjuk a programunkhoz”. A csomagban található típusokra, és programegységekre pont-tal hivatkozhatunk.
A Put_Line eljárás segítségével írhatunk ki a konzolban egy sorba. (Ez egy Put és egy New_Line szekvenciájának megfelelője.) Figyeljük meg, hogy az utasításokat pontosvessző választja el.
A figyelmes olvasó észrevehette, hogy a fenti néhány sorban rengeteg (szak)kifejezés található. Ezeket a következőkben elmagyarázzuk és a későbbiekben rendszeresen használjuk is.