| Előszó | 13 |
| Bevezetés | 15 |
| Az Ada nyelv áttekintése | 25 |
| Az Ada kialakulásának történeti háttere | 25 |
| Az Ada rövid jellemzése | 27 |
| Lexikális elemek | 31 |
| Feladatok | 33 |
| Típusok és kifejezések | 35 |
| Típusok | 35 |
| Altípusok | 38 |
| Származtatott típusok | 40 |
| Objektum deklarációk és értékadások | 42 |
| Skalár típusok | 45 |
| Attribútumok | 46 |
| A diszkrét típusok | 48 |
| A valós típusok | 56 |
| A tömb típus | 61 |
| Tömb típusú objektumok műveletei | 64 |
| Szöveg típusok | 67 |
| A rekord típus | 68 |
| A rekord diszkriminánsai | 71 |
| A variáns rekord | 73 |
| Mutató típusok | 77 |
| Feladatok | 89 |
| Utasítások | 91 |
| Egyszerű utasítások | 91 |
| Az értékadás | 91 |
| A null utasítás | 92 |
| Alprogramok hívása és a return utasítás | 92 |
| Összetett utasítások | 93 |
| Elágazás: if-then-elsif-else, case | 93 |
| Ciklus utasítások: for, while, exit | 94 |
| A blokk és a declare utasítás | 96 |
| A goto utasítás | 98 |
| Feladatok | 98 |
| Alprogramok | 101 |
| Paraméterek | 104 |
| A paraméterek módja | 105 |
| Másolat és hivatkozás szerinti paraméterátadás | 107 |
| Mutató paraméter | 110 |
| Az aktuális paraméter megfeleltetése a formálisnak | 112 |
| Paraméterek feltételezett értéke | 112 |
| Alprogram definiálása | 113 |
| Megvalósítás megadásának módjai | 116 |
| További, az alprogramok közé sorolt entitások | 116 |
| Alprogramok átlapolása | 117 |
| Operátorok átlapolása | 118 |
| Alprogramok a könyv további fejezeteiben | 120 |
| Feladatok | 120 |
| Kivételek, kivételkezelés | 123 |
| Kivételkezelés az Ada nyelvben | 125 |
| A kivételek fajtái | 126 |
| A kivételkezelő rész | 127 |
| Kivételek kiváltódása, terjedése | 130 |
| Kivételek kiváltása, terjesztése | 131 |
| Kivétel példányok | 132 |
| Példák kivételek használatára | 134 |
| Mire használhatjuk a kivételeket? | 134 |
| További példák | 137 |
| Az Ada kivételezésének hiányosságai | 139 |
| Utalás a következő fejezetekre | 140 |
| Az előre definiált könyvtárak kivételei | 140 |
| Feladatok | 141 |
| A csomag | 143 |
| A csomag specifikációja | 143 |
| A csomag törzse | 144 |
| Az átlátszatlan típus | 146 |
| Késleltetett definíciójú konstansok | 148 |
| Az átlátszatlan típusok műveletei | 148 |
| A korlátozott átlátszatlan típus | 150 |
| Átlátszatlan kiterjesztések | 152 |
| Illeszkedési szabályok | 152 |
| Példaprogramok | 153 |
| Véletlenszámok előállítása | 153 |
| Halmaz megvalósítása | 154 |
| A Kupac osztály megvalósítása | 155 |
| Ellenőrzött típusok | 158 |
| Gyermekcsomagok | 159 |
| Feladatok | 162 |
| Hatáskör és láthatóság | 163 |
| Deklarációs környezet | 163 |
| Hatáskör | 164 |
| Láthatóság | 165 |
| A use utasítás | 168 |
| Az átnevezés | 169 |
| A program szerkezete | 171 |
| Partíciók, fordítási egységek | 171 |
| Könyvtári elemek | 173 |
| Alegységek | 175 |
| Szemantikus függőség | 176 |
| Példaprogramok | 177 |
| Prioritási sorok | 177 |
| Keresztreferencia lista készítése | 180 |
| Feladatok | 187 |
| Az Input-Output használata | 189 |
| Külső fájlok és fájlobjektumok | 189 |
| Soros és közvetlen elérésű fájlok | 190 |
| Szekvenciális fájlok | 193 |
| Közvetlen elérésű fájlok | 194 |
| A Storage_IO csomag | 196 |
| Textfájlok kezelése | 197 |
| Sor- és oldalhosszok beállítása és lekérdezése | 201 |
| Oszlopok, sorok, és oldalak műveletei | 202 |
| Get és Put eljárások | 206 |
| Egész típusok input-outputja | 210 |
| Valós típusok input-outputja | 212 |
| Felsorolási típusok input-outputja | 215 |
| Wide_Character és Wide_String input-output | 217 |
| Adatfolyam input-output | 217 |
| A Streams.Stream_IO csomag | 217 |
| A Text_IO.Text_Streams csomag | 220 |
| A Wide_Text_IO.Text_Streams csomag | 221 |
| Az input-output során fellépő kivételek | 221 |
| Fájlok megosztása | 222 |
| Az SVGALib könyvtár | 223 |
| Az svgalib.ads | 223 |
| Az svgalibmouse.ads | 225 |
| Feladatok | 226 |
| Sablonok | 227 |
| Sablonok definiálása | 228 |
| Sablonok példányosítása | 231 |
| A sablon-szerződés modell | 232 |
| Sablon paraméterek | 234 |
| Paraméter objektumok | 234 |
| A paraméter típusok fajtái | 235 |
| Paraméter alprogramok | 247 |
| Csomagparaméterek | 250 |
| Példák sablonok használatára | 253 |
| Sablonok az előre definiált könyvtárakban | 253 |
| Sablonban, illetve sablonként megvalósított típusok | 253 |
| Üres sablon csomag, mint absztrakció | 255 |
| Kivételek sablon formális paraméterként | 257 |
| Feladatok | 257 |
| Objektum-orientált programozás | 259 |
| Az objektum-orientált tervezés | 259 |
| Öröklődés | 262 |
| Primitív műveletek | 266 |
| Konverzió | 267 |
| Jelölt típusok a variáns rekord helyett | 268 |
| Többalakúság | 273 |
| Osztályok és futásidejű azonosítás | 273 |
| Kiválasztás | 276 |
| Egy lehetséges megvalósítás | 278 |
| Az objektumok címkéje és a 'Tag attribútum | 278 |
| Egyenlőség és tartalmazás operátorok | 278 |
| Eltakart implementáció hívása | 280 |
| Újrakiválasztás | 280 |
| Absztrakt típusok és műveletek | 282 |
| Konstruktorok, destruktorok, értékadás | 286 |
| Feladatok | 287 |
| Konténer típusok | 289 |
| A Lista típus | 289 |
| A Lista típus megvalósítása | 291 |
| Esemény-listák | 299 |
| Feladatok | 302 |
| Adatfolyamok | 303 |
| Az Ada.Streams csomag | 303 |
| Adatfolyam-attribútumok | 304 |
| Objektum-hierarchiák tárolása adatfolyamokban | 306 |
| Feladatok | 308 |
| Taszkok | 309 |
| A taszk specifikációja és törzse | 310 |
| Taszk típusok, taszk objektumok | 312 |
| Taszkok elindítása, végrehajtása | 313 |
| Taszkok terminálása | 313 |
| A taszkok attribútumai | 315 |
| Belépési pont, belépési pont hívás, accept utasítás | 315 |
| Belépésipont-családok | 318 |
| A select utasítás | 318 |
| A szelektív várakoztatás | 319 |
| A select utasítás hívó taszkban | 323 |
| Kivételkezelés | 324 |
| Példák | 324 |
| Feladatok | 332 |
| Védett típusok és objektumok | 333 |
| Áttekintés | 334 |
| Védett egységek készítése | 337 |
| Típus és objektum | 338 |
| Szerkezet | 339 |
| Diszkrimináns | 340 |
| Őrfelvételek | 341 |
| A műveletek belseje | 342 |
| Működés | 344 |
| A védett egységek használata | 347 |
| Értékelés | 349 |
| Példák | 350 |
| Korlátos buffer | 351 |
| Üzenetszórásos szignál | 351 |
| Feladatok | 353 |
| Reprezentációs specifikációk | 355 |
| Reprezentációs elemek | 355 |
| A Pack direktíva | 356 |
| Reprezentációs attribútumok | 356 |
| Felsorolási típus reprezentációs záradékai | 359 |
| Rekordok kialakításának szabályozása | 360 |
| Fagyasztási szabályok | 362 |
| A System csomag | 363 |
| Assembly részek beillesztése | 365 |
| Ellenőrzés nélküli adatelérés | 366 |
| Ellenőrzés nélküli típuskonverzió | 366 |
| Nem ellenőrzött referenciaképzés | 368 |
| Memóriagazdálkodás | 369 |
| Szabadlista-kezelés | 369 |
| Ellenőrzés nélküli tárfelszabadítás | 371 |
| A Controlled pragma | 372 |
| További fordítási direktívák | 372 |
| Előre definiált nyelvi környezet | 377 |
| A Standard csomag | 377 |
| Karakterkezelés | 383 |
| Sztringkezelés | 386 |
| Fix hosszúságú sztringek kezelése | 390 |
| Korlátos hosszúságú sztringek kezelése | 397 |
| Nemkorlátos hosszúságú sztringek kezelése | 406 |
| Sztringkezelést támogató halmazok és leképezések | 413 |
| Wide_String kezelés | 414 |
| A numerikus csomagok | 414 |
| Elemi függvények | 414 |
| Véletlenszámok generálása | 418 |
| A lebegőpontos típusok attribútumai | 420 |
| A fixpontos típusok attribútumai | 424 |
| Input-Output | 425 |
| A Sequential_IO sablon csomag deklarációja | 425 |
| A Direckt_IO sablon csomag deklarációja | 427 |
| A Storage_IO sablon csomag deklarációja | 428 |
| A Text_IO csomag deklarációja | 429 |
| A Streams.Stream_IO csomag deklarációja | 437 |
| A Text_IO.Text_Streams csomag deklarációja | 439 |
| A Wide_Text_IO.Text_Streams csomag | 439 |
| Az IO_Exceptions csomag deklarációja | 440 |
| A Command_Line csomag | 440 |
| Kapcsolódás más nyelvekhez | 443 |
| A kapcsolódást leíró pragmák | 443 |
| Az Interfaces csomag | 445 |
| Kapcsolódás a C nyelvhez | 446 |
| Az Interfaces.C.Strings csomag | 450 |
| Az Interfaces.C.Pointers sablon csomag | 452 |
| Kapcsolódás a COBOL nyelvhez | 455 |
| Kapcsolódás a Fortran nyelvhez | 461 |
| Rendszerprogramozás | 465 |
| A gépi utasítások elérése | 465 |
| Megszakításkezelés | 465 |
| Védett kezelőeljárások | 466 |
| Az Interrupts csomag | 467 |
| A Discard_Names pragma | 468 |
| Osztott elérésű változók | 469 |
| Taszkok azonosítása | 470 |
| A Task_Attributes sablon csomag | 471 |
| Valós idejű rendszerek | 473 |
| Taszk prioritások | 473 |
| Prioritás ütemezés | 475 |
| A taszk ütemezési modell | 475 |
| A szabványos taszk ütemező technika | 476 |
| Maximált prioritás kizárási technika | 477 |
| Belépési pont besorolási technikák | 478 |
| Dinamikus prioritáskezelés | 479 |
| Monoton idő | 479 |
| Szinkron taszk vezérlés | 482 |
| Aszinkron taszk vezérlés | 483 |
| Osztott rendszerek | 485 |
| Partíciók | 485 |
| A könyvtári egységek osztályozása | 486 |
| Osztott passzív könyvtári egységek | 487 |
| Távoli típus könyvtári egységek | 488 |
| Távoli hívás interfész könyvtári egységek | 489 |
| Távoli alprogramhívások | 490 |
| Dinamikus összekapcsolás | 492 |
| Alprogramra vonatkozó mutató típus | 492 |
| Osztályszintű korlátozott típusra mutató típus | 493 |
| Információs rendszerek | 497 |
| A gépi alapszám definiálása | 497 |
| A Decimal csomag | 497 |
| Decimális típusok formázott megjelenítése | 498 |
| A Text_IO.Editing csomag | 501 |
| A Wide_Text_IO.Editing csomag | 504 |
| Numerikus műveletek | 505 |
| Komplex aritmetika | 505 |
| Komplex típusok | 505 |
| Komplex elemi függvények | 510 |
| Komplex input-output | 513 |
| A Wide_Text_IO.Complex_IO csomag | 515 |
| Hatékonysági követelmények | 515 |
| A lebegőpontos aritmetika modellje | 516 |
| Lebegőpontos típusok modellorientált attribútumai | 517 |
| A magasszintű programozási nyelvek alapfogalmai | 519 |
| A számítási modellek fajtái | 519 |
| Neumann-elvű nyelvek | 520 |
| A nyelvi elemek, alapfogalmak | 520 |
| Általános fogalmak | 520 |
| Programszerkezet | 521 |
| Deklarációk | 521 |
| Memóriakezelés | 523 |
| Paraméterátadás | 524 |
| Feladatok | 527 |
| Szótár | 553 |
| Irodalomjegyzék | 557 |
| Tárgymutató | 559 |