Programátorská chyba

Z Multimediaexpo.cz

Verze z 19. 9. 2013, 11:14; Sysop (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Programátorská chyba je druh softwarové chyby, kterou udělal programátor při vytváření počítačového programu. Programátorskou chybu, která v software způsobí bezpečnostní problém, označujeme jako zranitelnost. Program využívající zranitelnost je exploit.

Obsah

Zdroje chyb

Chyba může být:

Syntaktická
Taková chyba spočívá v narušení syntaxe gramatiky použitého programovacího jazyka. U kompilovaných programů ji překladač zahlásí přímo při překladu během syntaktické analýzy.
Sémantická
Program se bez problému přeloží, ale nedělá co má. Například skončí v nekonečném cyklu, spadne (je násilně ukončen operačním systémem pro porušení přidělených práv) nebo vydá naprosto špatný výsledek (což je většinou ta nejhorší možná varianta). Ve složitějším programu (například operačním systému) se může stát, že program pozná, že se dostal do chybné situace, ale není schopen pokračovat ve funkci a proto se zastaví nebo ukončí, obvykle se specifickým chybovým hlášením.
Neočekávaná událost
Při běhu programu nastane situace, se kterou programátor nepočítal a na kterou neumí program správně zareagovat. Může to být situace vnitřní (například se pokouší psát do souboru na disku, ale disk je plný) nebo neočekávaná hodnota vstupu.

Velmi často způsobí chybu obyčejný překlep, například ve jméně proměnné, použití 1 místo 0 nebo < místo <=. Takové chyby se zvlášť špatně hledají. Dalším zdrojem chyb je chybné nebo nedostatečné použití synchronizačních primitiv při přístupu ke sdíleným zdrojům. Taková chyba může v programu vydržet velmi dlouho a projevit se teprve při specifickém pořadí naplánování vláken na procesoru nebo procesorech. Podmnožinou těchto chyb je deadlock.

Bug

Programátorská chyba se často i v češtině označuje anglickým výrazem bug a proces jejího odstraňování ladění (debugování). Bug znamená doslova moucha, štěnice nebo obecně brouk. V angličtině se ve významu chyba (například konstruktérská) používá už velmi dlouho – použil ho například Thomas Edison roku 1878, když mluvil o svých vynálezech. S počítači pak pronikl do mnoha dalších jazyků. Traduje se, že původem tohoto významu je problém způsobený skutečným hmyzem. Známá je třeba historka o molu zachyceném na relé počítače Mark II dne 9. září 1947. Mol byl pečlivě vyproštěn a nalepen do záznamu s poznámkou „první skutečný případ nalezeného bugu“.[1] Je ovšem zřejmé nejen to, že se nejedná o první výskyt termínu, ale také to, že operátoři o konstruktérském použití věděli.

Související články

Reference

  1. http://infosys.iptime.org/tt1/attach/1/1331426155.jpg

Externí odkazy