Nepasiekiamas kodas yra programavimo kodas, kurio negalima vykdyti jokiame kontekste. Tai gali įvykti dėl įvairių priežasčių, o daugelis kompiuterių kalbų neleidžia vykdyti programos, jei nepasiekiama kodo dalis. Problemas, kurias sukelia nepasiekiamas kodas, galima išspręsti pašalinus probleminę kodo dalį arba perrašant dalį kodo, kad sekcija vėl būtų pasiekiama.
Kuriant programinę įrangą gali būti gana lengva netyčia sukurti nepasiekiamą kodą. Bet koks reikšmingas programos srauto sutrikimas gali sukelti nepasiekiamą kodo skyrių. Pavyzdžiui, atsitiktinai sukūrus begalinę ciklą visas kodas, esantis po jo, gali būti nepasiekiamas, nes nebus jokio būdo kada nors išeiti iš ciklo ir tęsti programą. Kitas būdas tai gali nutikti, jei funkcija užkoduota taip, kad ji sugrįžtų prieš įvykdant visą jos kodą. Tokiu atveju kodas po grąžinimo teiginio būtų nepasiekiamas.
Nepasiekiamas kodas gali būti generuojamas dviem būdais. Pirma, netinkamai valdant valdymo struktūras rašant neapdorotą kodą, gali atsirasti nepasiekiamų kodo dalių. Antra, valdymo struktūrų klaidos, kurios nėra akivaizdžios kodavimo proceso metu, bet pasirodo paleidžiant programą, taip pat gali sukelti kodą, kuris yra nepasiekiamas. Pirmojo tipo klaidos vadinamos įvairiais pavadinimais, įskaitant kodavimo ar sintaksės klaidą, o antrojo tipo klaidos yra vykdymo klaida. Kodavimo klaidas dažniausiai užfiksuoja analizatoriai arba kompiliatoriai, tačiau vykdymo klaidas galima aptikti tik išbandžius ir paleidus programą baigus.
Nepasiekiamas kodas dažnai painiojamas su negyvu kodu, tačiau tai yra labai skirtingi dalykai. Neveikiantis kodas yra kodas, kuris atlieka tam tikrą skaičiavimą, bet tada nieko nedaro su skaičiavimo rezultatu. Tai nėra tas pats, kas nepasiekiamas kodas, kuris niekada nevykdomas. Tiek nepasiekiamas, tiek miręs kodas dažnai gali būti pašalintas iš programos be žalos arba gali būti integruotas atgal į programą, atidžiai stebint programos valdymo srautą. Be to, tiek nepasiekiamas, tiek negyvas kodas paprastai gali būti aptiktas kodavimo metu ir prieš paleidžiant programą.
Nepaisant iš pažiūros baisaus apibrėžimo, nepasiekiamą kodą dažnai gana lengva ištaisyti. Nepasiekiamo kodo buvimas visada rodo valdymo srauto problemą, todėl kruopšti programos valdymo srauto analizė paprastai greitai nustato pažeidžiantį kodą. Jei programos valdymo srautas yra atidžiai stebimas viso kodavimo proceso metu, nepasiekiamo kodo generavimo tikimybė yra labai maža.