Ladenie programov
Ladenie programov
Správny program musí na ľubovoľnú kombináciu vstupných dát odpovedať korektnou kombináciou dát výstupných. Prvá otázka znie – vieme vždy, čo má výjsť; aké výsledky – teda kombinácia výstupných údajov – má program poskytovať? Žiadny, ani nejjednoduchší program nemôžeme testovať pre všetky kombinácie vstupných dát, pretože množina týchto kombinácií je obvykle nekonečná. Ladenie programov je preto nealgoritmizovateľná činnosť. Dokázať sa dá jedine chyba. Žiadna ladiaca technika však nemôže – a to z principiálnych dôvodov – nikdy zaručiť, že program chyby neobsahuje.
Chyby v programe môžu byť rôzneho druhu. Syntaktické chyby predstavujú prehrešky proti pravidlám jazyka.Takéto chyby sa hľadajú veľmi jednoducho. Skúsený programátor nepotrebuje k ich lokalizácii väčšinou ani chybové hlásenie kompilátora. Väčšie potiaže môžu spôsobiť ďalšie dve kategórie chýb: chyby sémantické a logické.
Sémantická chyba je príkaz alebo úsek programu, ktorý síce je formálne bezchybný, ale vyjadruje niečo iné, ako mal programátor na mysli.
Logická chyba sa týka samotného algoritmu riešenia úlohy. Bezchybným prepisom chybného algoritmu do programovacieho nemôže samozrejme vzniknúť správny program. Korene logickej chyby môžu byť ešte hlbšie ako v algoritme, teda v špecifikácii problému.
Ak hovoríme o ladení, potom nás zaujíma:
ako písať programy s minimálnym obsahom chýb
ako programy testovať, teda ako zisťovať či obsahujú chyby
ako vyhľadávať a opravovať chyhy, na ktorých prítomnosť v programe sme už boli nejak upozornení
aké softvérové nástroje pre všetky tieto činnosti má súčasný programátor k dispozícii