Софтверска грешка

(преусмерено са Баг (информатика))

Рачунарски „баг” је популарни назив за грешку у рачунарском програму или, рјеђе, самом рачунару. Термин долази од енглеске ријечи bug („буба”, „инсект”) и почео се шире користити од настанка дигиталних рачунара 1940-их година.

Први рачунарски „баг“ (грешка у програму или рачунару).

Багови настају при процесу писања рачунарских програма, у којем се дешавају различите грешке узроковане људима који их пишу. Пошто рачунари имају ограничене (или никакве) могућности провјере људског кода, долази до испољавања грешака при самом раду програма.

При контроли процеса или машина, багови могу бити скупи, а понекад и смртоносни.

Познатији случајеви ралунарских багова укључују пропаст сателита Маринер I (1961), рендген машине које су изазвале смрт људи због превелике дозе зрачења (1980-е), експлозија ракете Аријане 5 (1996) и друге. Познати фиктивни баг је овјековјечен у филму Одисеја у свемиру 2001, гдје рачунар ХАЛ 9000, почиње да убија чланове посаде свемирског брода Откриће.

Чести багови

уреди

Аритметички багови

уреди
  • Дељење са нулом
  • Губитак прецизности због заокруживања

Логички багови

уреди
  • Бесконачна петља
  • Бесконачна рекурзија

Синтаксички багови

уреди
  • Коришћење погрешног оператора, на пример оператора доделе вредности уместо оператора поређења једнакости

Ресурсни багови

уреди
  • Дереференцирање NULL показивача
  • Коришћење неиницијализоване променљиве
  • Приступ недозвољеном подручју меморије (segmentation fault)
  • Предубока рекурзија, која иако логички валидна има за последицу препуњавање стека

Литература

уреди

Спољашње везе

уреди