Co je nedostupný kód?
Nedostupný kód je programovací kód, který nelze spustit v žádném kontextu. K tomu může dojít z mnoha důvodů a mnoho počítačových jazyků neumožňuje spuštění programu, pokud je část kódu nedostupná. Problémy generované nedosažitelným kódem lze vyřešit buď odstraněním problematické části kódu, nebo přepsáním části kódu, aby byla sekce opět dosažitelná.
Při inženýrském softwaru může být poměrně snadné neúmyslně vytvořit nedostupný kód. Jakékoli významné narušení toku programu má potenciál způsobit nedostupnou část kódu. Například náhodné vytvoření nekonečné smyčky může způsobit, že veškerý kód, který následuje po něm, bude nedosažitelný, protože by neexistoval žádný způsob, jak by se mohl ze smyčky dostat a pokračovat v programu. Jiným způsobem se to může stát, je-li funkce kódována tak, aby se vrátila před provedením celého kódu. V tomto případě by kód po návratovém příkazu byl nedostupný.
Existují dva způsoby, jak lze vygenerovat nedosažitelný kód. Zaprvé, nesprávné zacházení s řídicími strukturami při psaní nezpracovaného kódu může vést k částem kódu, které jsou nedosažitelné. Za druhé, chyby v řídicích strukturách, které nejsou patrné během procesu kódování, ale objevují se při spuštění programu, mohou také způsobit kód, který je nedostupný. První typ chyby je podle řady jmen, včetně chyby kódování nebo syntaktické chyby, a druhým typem chyby je chyba runtime. Chyby kódování jsou obvykle zachyceny analyzátory nebo kompilátory, ale chyby za běhu mohou být detekovány pouze testováním a spuštěním programu po dokončení.
Nedostupný kód je často zaměňován s mrtvým kódem, ale tyto dvě věci jsou výrazně odlišné. Mrtvý kód je kód, který provádí konkrétní výpočet, ale poté s výsledkem výpočtu nedělá nic. To není stejné jako kód, který je nedosažitelný, který se nikdy nevykonává vůbec. Nedostupný i mrtvý kód lze často z programu odstranit bez újmy, nebo je lze integrovat zpět do programu pečlivou pozorností na řídicí tok programu. Kromě toho lze během kódování a před spuštěním programu detekovat nedostupný i mrtvý kód.
I přes zdánlivě hroznou definici je nedostupný kód často poměrně snadno opravitelný. Přítomnost nedosažitelného kódu vždy indikuje problém s regulačním tokem, takže pečlivá analýza regulačního toku programu obvykle identifikuje problematický kód v krátkém pořadí. Pokud je během procesu kódování pečlivě sledován řídicí tok programu, je pravděpodobnost generování nedosažitelného kódu velmi nízká.