Softverska greška

Računarski „bag” je popularni naziv za grešku u računarskom programu ili, rjeđe, samom računaru. Termin dolazi od engleske riječi bug („buba”, „insekt”) i počeo se šire koristiti od nastanka digitalnih računara 1940-ih godina.

Prvi računarski „bag“ (greška u programu ili računaru).

Bagovi nastaju pri procesu pisanja računarskih programa, u kojem se dešavaju različite greške uzrokovane ljudima koji ih pišu. Pošto računari imaju ograničene (ili nikakve) mogućnosti provjere ljudskog koda, dolazi do ispoljavanja grešaka pri samom radu programa.

Pri kontroli procesa ili mašina, bagovi mogu biti skupi, a ponekad i smrtonosni.

Poznatiji slučajevi ralunarskih bagova uključuju propast satelita Mariner I (1961), rendgen mašine koje su izazvale smrt ljudi zbog prevelike doze zračenja (1980-e), eksplozija rakete Arijane 5 (1996) i druge. Poznati fiktivni bag je ovjekovječen u filmu Odiseja u svemiru 2001, gdje računar HAL 9000, počinje da ubija članove posade svemirskog broda Otkriće.

Česti bagovi uredi

Aritmetički bagovi uredi

  • Deljenje sa nulom
  • Gubitak preciznosti zbog zaokruživanja

Logički bagovi uredi

  • Beskonačna petlja
  • Beskonačna rekurzija

Sintaksički bagovi uredi

  • Korišćenje pogrešnog operatora, na primer operatora dodele vrednosti umesto operatora poređenja jednakosti

Resursni bagovi uredi

  • Dereferenciranje NULL pokazivača
  • Korišćenje neinicijalizovane promenljive
  • Pristup nedozvoljenom području memorije (segmentation fault)
  • Preduboka rekurzija, koja iako logički validna ima za posledicu prepunjavanje steka

Literatura uredi

Spoljašnje veze uredi