Кіріспе
Өлі код термині бірнеше анықтамаға ие. Кейбіреулер бұл терминді кодқа (яғни жадтағы нұсқауларға) қатысты қолданады, ол ешқашан орындалу кезінде іске қосылмайды. Компьютерлік бағдарламалаудың кейбір салаларында өлі код – бағдарламаның бастапқы кодындағы іске қосылатын, бірақ нәтижесі басқа есептеулерде ешқашан қолданылмайтын бөлім. Өлі кодты орындау есептеу уақытын және жадты ысыраптайды. Өлі есептеудің нәтижесі ешқашан қолданылмауы мүмкін, бірақ ол қателер тудыруы немесе жаһандық күйге әсер етуі мүмкін, сондықтан мұндай кодты жою бағдарламаның нәтижесін өзгертіп, күтпеген қателерге әкелуі мүмкін. Компиляторлар өлі кодты жою кезінде консервативті тәсілді ұстанады, егер кодты жою бағдарламаның нәтижесіне әсер ететініне күмәндік болса. Бағдарламалаушы компиляторға статикалық және/немесе кіріктірілген функцияларды қосымша пайдалану арқылы және сілтеме уақытын оңтайландыруды қосуға рұқсат беру арқылы көмектесе алады.
The term dead code has multiple definitions. Some use the term to refer to code (i. e. instructions in memory) which can never be executed at run time. In some areas of computer programming, dead code is a section in the source code of a program which is executed but whose result is never used in any other computation. The execution of dead code wastes computation time and memory. While the result of a dead computation may never be used, it may raise exceptions or affect some global state, thus removal of such code may change the output of the program and introduce unintended bugs. Compiler optimizations are typically conservative in their approach to dead code removal if there is any ambiguity as to whether removal of the dead code will affect the program output. The programmer may aid the compiler in this matter by making additional use of static and/or inline functions and enabling the use of link time optimization.
Талдау
Өлі кодты жою – компиляторды оңтайландырудың бір түрі, онда бағдарламадан өлі код алынып тасталады. Өлі кодты талдауды тірі айнымалыларды талдау, статикалық кодты талдау және дерек ағыны талдау сияқты әдістер арқылы жүргізуге болады. Бұл, бақылау ағынын талдау негізіндегі қолжетімсіз кодты талдаудан өзгеше. Өлі кодты жою әдісі, қолжетімсіз кодты жою және артық кодты жою сияқты оңтайландырулардың бір класына жатады. Ірі бағдарламалау жобаларында өлі кодты анықтау және жою кейде қиынға соғады, әсіресе толық модульдер өлі болып қалғанда. Тесттік құралдар кодтың әлі де қолданыста болғандай көрінуіне себеп болуы мүмкін, ал кейде шартнама тілі кодтың қажеттілігі болмаған жағдайда да оны тапсыруды талап етеді. Кейбір IDE (мысалы, Xcode, Visual Studio 2010 және Eclipse Galileo) компиляция кезеңінде өлі кодты анықтау мүмкіндігіне ие. Көптеген оңтайландыру әдістері іске асыру кезінде өлі кодты жоюға бағытталған болса, көлемді оңтайландырудың шекті жағдайларында, өлі кодты әдейі енгізу және оны мұқият қалыптастыру қажет болуы мүмкін. Бұл, әр түрлі байланыссыз код бөлімдерін біріктіруге (және осылайша олардың жалпы көлемін азайтуға) мүмкіндік береді. Нәтижесінде, қосымша код кодты орындаудың бастапқы жолына зиян келтірмейді, бірақ орындаудың баламалы жолдары үшін қажетті әрекеттерді орындау үшін қолданылады. Функционалдық тұрғыдан алғанда, бұл зиянсыз/пайдалы қосымша әсерлерді жасанды түрде енгізу және кодтың артықшылығын азайту ретінде қарастырылуы мүмкін. Сонымен қатар, бұл опкод деңгейінде де қолданылуы мүмкін, осылайша код тізбектерін бүктеу кезінде қолдануға болмайтын қысқа нұсқауларды пайдалануға мүмкіндік береді, бірақ өлі кодтың салдарынан туындаған қосымша әсерлерді келісімді түрде енгізу арқылы ғана.