| Előszó | 1 |
| Bevezetés | 3 |
| Egy Ada program | 4 |
| Egy másik program | 5 |
| Egy valódi program | 6 |
| Egy Ada program felépítése | 7 |
| Azonosítók és nevek | 8 |
| Az Ada programok környezete | 8 |
| Ada programozási környezet | 9 |
| Ada programfutási környezet | 9 |
| Típusok és értékek | 11 |
| Skalártípusok | 11 |
| Az altípus | 13 |
| A rekord | 14 |
| A tömb | 16 |
| A füzér (string) | 20 |
| Az adat | 20 |
| Nevek és objektumok | 22 |
| A szám | 24 |
| Erős típusosság | 24 |
| Kifejezések | 27 |
| Numerikus kifejezések | 27 |
| Egész kifejezések | 27 |
| Lebegőpontos kifejezések | 28 |
| Fixpontos kifejezések | 29 |
| Logikai kifejezések | 29 |
| Relációk | 29 |
| Megfelelés | 30 |
| Logikai kifejezések | 31 |
| További kifejezések | 31 |
| A felsorolástípus kifejezései | 31 |
| Kifejezések tömbökkel | 32 |
| A programozó által definiált típusok kifejezései | 32 |
| A kifejezésekről általában | 32 |
| Operandusok | 33 |
| Operátorok | 35 |
| Kifejezések kiértékelése | 36 |
| Utasítások | 39 |
| Az utasítássorozat | 39 |
| Értékadás | 40 |
| Alternatívák | 41 |
| Kiválasztás feltétel segítségével | 41 |
| Kiválasztás értékmegkülönböztetés szerint | 42 |
| Ciklus | 43 |
| Hívó (call) utasítás | 44 |
| A blokkutasítás | 45 |
| Az elágazó utasítások | 46 |
| Az exit (kijárat) utasítás | 47 |
| A raise (kivételkiváltó) utasítás | 47 |
| A goto (ugor) utasítás | 48 |
| További szekvenciális utasítások | 49 |
| A delay (késleltető) utasítás | 49 |
| A null (üres) utasítás | 50 |
| Alprogramok | 52 |
| Alprogram-specifikáció | 52 |
| Az alprogramtörzs | 57 |
| Az alprogram hívása | 60 |
| Kivételek | 63 |
| A kivétel deklarálása | 64 |
| A kivétel kiváltása | 65 |
| A kivétel kezelése | 66 |
| A kivételek továbbadása | 68 |
| Hogyan használjunk kivételt | 69 |
| Előre definiált kivételek | 71 |
| A csomag | 73 |
| Az adatcsomag | 73 |
| Csomag típusdefiníciókkal | 76 |
| Csomag alprogramokkal | 77 |
| Privát típust tartalmazó csomag | 77 |
| Hivatkozás a csomag deklarációira | 79 |
| Csomagspecifikáció általában | 79 |
| A csomagtörzs általában | 80 |
| Párhuzamos programozás | 83 |
| Taskok és kapcsolataik | 84 |
| Task deklarálása | 85 |
| Taskok egymás közt | 85 |
| A task vezérlése | 87 |
| Taskok közti kommunikáció | 88 |
| A randevú aszimmetriája | 90 |
| Az aktív task | 91 |
| A belépési pont időzítése | 92 |
| Feltételes belépésipont-hívás | 92 |
| Input-output taskok | 92 |
| A megszakítás kezelése | 93 |
| Az input és az output vezérlése | 93 |
| Programszerkezet | 97 |
| A deklarációk láthatósága | 98 |
| Az utasításcimke | 98 |
| A blokk és a ciklus azonosítója | 99 |
| A ciklusparaméter | 99 |
| Deklarált azonosítók | 100 |
| Blokkstruktúra | 101 |
| Blokkstruktúra alprogramok esetén | 102 |
| Modulstruktúra | 103 |
| Átnevezés | 105 |
| Objektumok átnevezése | 105 |
| Alprogram átnevezése | 105 |
| Kivétel vagy csomag átnevezése | 106 |
| Egyebek | 106 |
| Az azonosítók egyediek | 106 |
| Helyi környezet | 107 |
| Felsorolástípus értékei | 107 |
| Rekordösszetevők azonosítói | 108 |
| Formális paraméterek és alprogramok | 110 |
| Az alprogram profilja | 111 |
| A külön fordítás és a generikusok | 113 |
| A fordítási egység | 114 |
| A fordítási egység hatásos környezete | 115 |
| A fordítási egység számára hozzáférhető környezetek | 117 |
| Külön fordított alegységek | 118 |
| A fordítás sorrendje | 118 |
| Az újrafordítási sorrend | 120 |
| Generikus programegységek | 121 |
| A teljes megadás, az alegység és a generikus használatának összehasonlítása | 122 |
| Hogyan használjuk a generikus lehetőségeket | 123 |
| Generikus paraméterek | 125 |
| Sorok kezelése | 126 |
| Táblázatok kulcsokkal | 129 |
| Input-output és a reprezentációk | 132 |
| File-ok | 133 |
| Felkészülés egy file használatára | 136 |
| File-pozicionálás | 138 |
| Adatátvitel | 140 |
| Szöveges input-output | 141 |
| Egyszerű szöveges output | 142 |
| Egyszerű szöveges input | 143 |
| Kötött formájú input | 145 |
| Füzérkonverzió | 145 |
| Az íráskép vezérlése | 146 |
| Implicit file-ok | 147 |
| Input-output csomagok | 148 |
| Alacsony szintű input-output | 150 |
| Megszakítások | 150 |
| A reprezentáció-előírás | 152 |
| Rekordfelépítés | 152 |
| Berendezések címei | 153 |
| A felsorolás reprezentációja | 154 |
| A tárhasználatot befolyásoló reprezentációk | 155 |
| A reprezentáció kezelése | 156 |
| Belépési pontok | 157 |
| Kódutasítás - végrehajtható gépi kód | 157 |
| A típusokról - részletesebben | 159 |
| Származtatott típus | 160 |
| A privát típus | 161 |
| Látható rész | 161 |
| A privát rész | 163 |
| Rekord variáns résszel | 163 |
| Korlátozás és altípus | 168 |
| Az értékkészlet korlátozása | 169 |
| A pontosság korlátozása | 170 |
| A diszkrimináns korlátozása | 171 |
| Az index korlátozása | 172 |
| Korlátozás és származtatott típus | 174 |
| Mutatótípus | 176 |
| Mutatóobjektum | 178 |
| Új objektum létrehozása | 179 |
| Mutatóérték mint rekordösszetevő | 180 |
| Kapcsolat a mutatóobjektumok között | 181 |
| Listák kezelése | 185 |
| Korlátozott számú objektum | 187 |
| Tárkezelés mutatótípus segítségével | 188 |
| Típusok használata a programtervezésben | 191 |
| A task használatáról bővebben | 194 |
| Tasktípusok | 194 |
| Belépésriport-családok | 195 |
| Nem-determinisztikus eset | 196 |
| Szelektív randevú | 197 |
| Figyelő időzítés | 198 |
| Feltételes taskbefejeződés | 198 |
| Tiltás | 199 |
| Feltételes randevú | 200 |
| Hiba randevú közben | 201 |
| Task vezérlése | 202 |
| A kivétel továbbadása accept utasításból | 202 |
| Kivétel a task legkülső szintjén | 202 |
| Hibás task megállítása | 203 |
| Hibás randevú | 204 |
| Taskok közötti kommunikáció Mascot-ban | 204 |
| A Mascot-csatorna megvalósítása | 205 |
| A Mascot közöskészlet-megvalósítása | 206 |
| Összefoglalás | 208 |
| A függelék: Előre definiált specifikációk | 209 |
| B függelék: Megjegyzések FORTRAN programozók számára | 224 |
| C függelék: Megjegyzések Pascal programozók számára | 227 |
| D függelék: Pragmák és ottribútumok | 230 |
| E függelék: Szójegyzék | 241 |
| F függelék: Ada szintaxis | 248 |
| Tárgymutató | 305 |