A programozási tételekről
Sok könyv úgy oktatja a programozási tételeket, mint kőbevésett dolgokat, amelyeket adott formában szabad alkalmazni. Bizonyos esetekben amikor biztonságkritikus szoftvereket készítünk és a programunk helyességét nem teszteléssel igazoljuk, hanem azzal, hogy a programot egy bizonyíthatóan helyes módszerrel állítjuk elő ez majdnem így is van. Azonban az alkalmazások túlnyomó része nem ilyen. A gyakorlat szempontjából a programozási tételek elvek megfelelői, amelyek a tételekbe vannak zárva. Ezek az elvek más-más formát ölthetnek a különböző megjelenéseik során. Az egyik ilyen elv, amelyet számos programozási tétel követ/használ, hogy „sorban végigmegyünk valami, és az elemekkel csinálunk valamit”.
Ez az alapja számos ismert programozási tételnek. (És, ha majd a generikus/ template /sablon programozásról lesz szó, ezek azok az elvek, melyeket meg kell tudnunk fogalmazni.)
Nézzük az összegzést. Sorban végigmegyünk valamin, és ezeket hozzáadjuk valamihez, ami kezdetben nulla, vagy ezt a szerepet tölti be. Persze általánosabban egy műveletet feltételez, és egy egységet a műveletre nézve… (de ez már a matematika témakörébe tartozik…)
Kiválasztásnál, keresésnél, minden elemről eldöntjük, hogy bizonyos tulajdonságokkal bír-e vagy sem. Ha meg is számoljuk az ilyen elemeket, akkor már a számlálásnál tartunk.
Ha szétválogatást szeretnénk csak pakolni kell az elemeket néhány különböző csoportba. Míg, ha több valamin megyünk végig egyesével, akkor uniót vagy metszetet is kaphatunk. Itt már felmerülhet az igény az elemek sorrendjének befolyásolására. Ez a rendezés elve. A rendezés nem azt jelenti, hogy valami kisebb, nagyobb vagy egyenlő mint valami más, hanem, hogy összehasonlítjuk őket, és döntünk valami alapján, hogy melyiket hova tegyük. (Ha tudunk maximum kiválasztással rendezni, minimum kiválasztást is tudunk, csak azt kell mondanunk, hogy mostantól ami kisebb az a nagyobb és fordítva.) Az pedig, hogy mi alapján döntünk bármi lehet. Két egyforma dolgot tekinthetünk különbözőnek, ha hozzájuk veszünk egy plusz jellemzőt, amiben eltérnek, és különböző dolgokat is tekinthetünk egyformának, ha eltekintünk bizonyos tulajdonságoktól.
Ezt a megközelítést nevezzük absztrakciónak, amelyhez az Ada nyelv kiváló eszközöket nyújt…