Miręs kodas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką
 NoFonti.svg  Šiam straipsniui ar jo daliai trūksta šaltinių ar nuorodų į juos.
Jūs galite padėti Vikipedijai įrašydami tinkamas išnašas ar nuorodas į šaltinius.

Miręs kodas (angl. dead code arba unreachable code) – programoje esantys sakiniai, kurie niekada, jokiomis aplinkybėmis nebus įvykdyti. Pavyzdžiui, C (arba java) pavyzdyje:

if (x >= 0)
  e = "Neneigiamas";
else if (x < 0)
  e = "Neigiamas";
else
  e = "Mires kodas";

paskutinis priskyrimo sakinys yra miręs, nes kintamasis x gali būti arba neneigiamas, arba neigiamas – trečiosios kodo numatytos alternatyvos niekada nebus.

Miręs kodas praeityje buvo didelė kartu su programa platinamų bibliotekų problema. Paprastai bendros paskirties biblioteka turi daugybę įvairių funkcijų, kurių visų konkrečiai programai beveik niekada nereikia. Jei nenaudojamas kodas iš galutinės versijos nepašalinamas, jis be reikalo padidina programos apimtį. Šiuolaikinės programavimo sistemos turi algoritmus mirusiam kodui pašalinti.

Miręs kodas gali slėpti ir gilesnę programavimo klaidą, nes jei programuotojas rašė komandas, jis greičiausiai tikėjosi, jog jos kokiomis nors aplinkybėmis bus vykdomos – taigi programa veikia ne taip, kaip manė jos autorius. Šiuolaikiniai kompiliatoriai turi daug galimybių mirusiam kodui jau kompiliacijos metu aptikti (java ir kai kuriose kitose kalbose tai laikoma klaida), tačiau jie nėra visaregiai. Pavyzdžiui, anksčiau minėto pavyzdžio daugelis kompiliatorių neatpažįsta kaip klaidos.

Pasitaiko jog dėl įvairių priežasčių (tarkim, laiko trūkumo) programoje paliktas "žinomai mirusio" kodo fragmentas "atgyja" ir jo veiklos padariniai būna katastrofiški. Pavyzdžiui, kosminiame zonde Phobos buvo palikta orientacijos sistemą išjungianti komandų seka kuri buvo naudojama testų Žemėje metu. Prisidėjus papildomai operatoriaus klaidai, kodas nelauktai išjungė sistemą skrydžio metu. Zondas buvo prarastas.

Sudėtingose sistemose praeityje veikęs kodas gali tapti nepasiekiamas tobulinant programą perrašius kitas, nebūtinai tiesiogiai susijusias jos dalis. Kai kada kodas tampa nepasiekiamas perrašius operacinės sistemos dalis ar net pakeitus aparatinę įrangą.

Mirusio kodo aptikimas yra svarbi statistinės analizės sritis.

Kitos klaidos[taisyti | redaguoti kodą]