Mis on kättesaamatu kood?

Kättesaamatu kood on programmeerimiskood, mida ei saa üheski kontekstis käivitada. Sellel võib olla palju põhjuseid ja paljud arvutikeeled ei võimalda programmi käivitada, kui koodiosa pole kättesaamatu. Kättesaamatu koodi tekitatud probleeme saab parandada, eemaldades probleemse koodiosa või kirjutades osa koodist ümber, et see jaotis oleks uuesti juurdepääsetav.

Tarkvara projekteerimisel võib olla suhteliselt lihtne luua tahtmatult kättesaamatut koodi. Mis tahes oluline häire programmi voos võib põhjustada koodilõigu, mis on kättesaamatu. Näiteks võib lõpmatu tsükli kogemata loomine muuta kogu sellele järgneva koodi kättesaamatuks, kuna pole võimalust kunagi tsüklist välja murda ja programmi jätkata. Teine võimalus see juhtuda on see, kui funktsioon kodeeritakse nii, et see naaseb enne kogu selle koodi käivitamist. Sel juhul oleks tagastuslause järgne kood kättesaamatu.

Ligipääsmatu koodi genereerimiseks on kaks võimalust. Esiteks võib juhtstruktuuride ebaõige käsitlemine töötlemata koodi kirjutamisel kaasa tuua koodilõigud, mis on kättesaamatud. Teiseks võivad juhtstruktuuride vead, mis pole kodeerimisprotsessi ajal ilmsed, kuid mis ilmnevad programmi käivitamisel, põhjustada ka kättesaamatut koodi. Esimest tüüpi vead kannavad mitmesuguseid nimesid, sealhulgas kodeerimisviga või süntaksiviga, ja teist tüüpi tõrge on käitusaegne viga. Kodeerimisvead püüavad tavaliselt kinni parserid või kompilaatorid, kuid käitusaegseid vigu saab tuvastada ainult programmi testimisel ja käivitamisel pärast selle valmimist.

Ligipääsmatut koodi aetakse sageli segi surnud koodiga, kuid need kaks on oluliselt erinevad asjad. Surnud kood on kood, mis teostab konkreetse arvutuse, kuid ei tee seejärel arvutuse tulemusega midagi. See ei ole sama, mis kättesaamatu kood, mida üldse ei käivitata. Nii kättesaamatu kui ka surnud koodi saab sageli programmist ilma kahju tekitamata eemaldada või programmi juhtimisvoogu hoolikalt tähelepanelikult programmi integreerida. Lisaks saab tavaliselt kodeerimise ajal ja enne programmi käivitamist tuvastada nii kättesaamatu kui ka surnud koodi.

Vaatamata näiliselt kohutavale määratlusele on kättesaamatut koodi sageli suhteliselt lihtne parandada. Kättesaamatu koodi olemasolu viitab alati juhtimisvoo probleemile, seega tuvastab programmi juhtimisvoo hoolikas analüüs tavaliselt rikkuva koodi lühikese aja jooksul. Kui programmi juhtimisvoogu jälgitakse hoolikalt kogu kodeerimisprotsessi vältel, on kättesaamatu koodi genereerimise tõenäosus väga väike.