Підтримка
www.wikidata.uk-ua.nina.az
U programuvanni ta teoriyi kompilyatoriv nedosya zhnim ko dom nazivayut chastinu kodu programi yaka za zhodnih umov ne mozhe buti vikonanoyu oskilki ye nedosyazhnoyu v grafi potoku upravlinnya Nedosyazhnij kod chasto vvazhayut odnim iz tipiv mertvogo kodu taka terminologiya zazvichaj zastosovuyetsya pri rozglyadi sircevogo kodu programi Odnak u teoriyi kompilyatoriv ci ponyattya niyak ne pov yazani mertvim kodom tam nazivayut tilki dosyazhnij kod yakij ne vplivaye na vivid programi Osnovni nedoliki nayavnosti v programi nedosyazhnogo kodu zajmaye zajvu pam yat ye prichinoyu zajvogo keshuvannya instrukcij u keshi instrukcij procesora yake takozh znizhuye lokalnist danih uskladnyuye pidtrimku zastosunkiv chas i sili mozhut vitrachatisya na pidtrimku i dokumentuvannya chastini kodu yaka ye nedosyazhnoyu a otzhe nikoli ne vikonuyetsya Prichini viniknennyaIsnuvannya nedosyazhnogo kodu obumovlyuyut rizni faktori napriklad programni pomilki v skladnih umovnih perehodah naslidki vnutrishnih peretvoren vikonuvanih optimizuvalnim kompilyatorom nepovne testuvannya novoyi abo modifikovanoyi programi za yakogo ne vdalosya viyaviti nedosyazhnij kod vipravlyayuchi odnu pomilku programist stvoriv inshu pomilku yaka obhodit nedosyazhnij kod i ne bula viyavlena pid chas testuvannya zastarilij kod yakij ne buv povnistyu vidalenij programistom oskilki buv zmishanij z robochim kodom zastarilij kod yakij programist zabuv vidaliti ranishe korisnij kod yakij nikoli ne bude vikonanij oskilki vvedennya danih nikoli ne prizvede do vikonannya cogo kodu zastarilij kod yakij navmisno zberezheno ale zrobleno nedosyazhnim dlya togo shob jogo mozhna bulo za neobhidnosti znovu vklyuchiti v programu nalagodzhuvalni konstrukciyi i zalishkovi chastini kodu yaki she mayut buti vidaleni z programi V ostannih p yati vipadkah nedosyazhnij kod ye uspadkovanim tobto ce kod yakij ranishe buv korisnim ale zaraz ne vikoristovuyetsya PrikladRozglyanemo nastupnij priklad na movi Si int foo int x int y return x y int z x y Nedostizhimyj kod Operaciya int z x y ye nedosyazhnim kodom oskilki pered neyu vikonuyetsya vihid z proceduri operaciyi sho stoyat pislya povernennya z proceduri mozhut i ne buti nedosyazhnim kodom napriklad yaksho na mitku roztashovanu pislya povernennya posilayetsya operator goto AnalizPoshuk nedosyazhnogo kodu v sircevomu kodi mozhna provesti za dopomogoyu statichnogo analizu kodu Za vikoristannya optimizuvalnogo kompilyatora viyaviti i vidaliti nedosyazhnij kod zdatna optimizaciya vidalennya nedosyazhnogo kodu yaka znahodit u grafi potoku keruvannya nedosyazhni vuzli i vidalyaye yih Prostij analiz cogo grafa na nayavnist nedosyazhnih vuzliv chasto buvaye realizovanim u kompilyatori u viglyadi okremoyi funkciyi tak zvanogo pribiralnika yaka viklikayetsya zrazu pislya peretvoren zdatnih zminyuvati graf potoku keruvannya Kod mozhe stavati nedosyazhnim unaslidok vikonannya kompilyatorom inshih peretvoren nad en napriklad optimizaciyi usunennya spilnih pidviraziv Na praktici skladnist realizovanogo analizu istotno vplivaye na kilkist viyavlenogo nedosyazhnogo kodu Napriklad pislya en i prostogo analizu potoku keruvannya mozhna viyaviti sho kod useredini operatora if u takomu prikladi ye nedosyazhnim int foo void int n 2 1 if n gt 4 printf d n Nedostizhimyj kod Odnak dlya togo shob viyaviti nedosyazhnij kod u nastupnomu prikladi slid zastosuvati znachno skladnishij algoritm analizu int foo void double x sqrt 2 if x gt 4 printf lf x Nedostizhimyj kod Odnim iz praktichnih rishen ye pidhid za yakogo spochatku vikonuyetsya prostij analiz nayavnosti nedosyazhnogo kodu a potim vikoristovuyetsya profilyuvalnik dlya opracyuvannya skladnishih vipadkiv Profilyuvalnik ne mozhe dovesti sho pevna dilyanka kodu ye nedosyazhnoyu ale vin mozhe buti garnoyu evristikoyu dlya poshuku pidozrilih vuzliv yaki jmovirno ye nedosyazhnimi Pislya viyavlennya cih potencijno nedosyazhnih vuzliv mozhna zastosuvati yakijs potuzhnij algoritm analizu nedosyazhnogo kodu Div takozhMertvij kod Vidalennya mertvogo kodu Vidalennya nedosyazhnogo koduPrimitkiEngineering a Compiler S 544 Debray S K Evans W Muth R and De Sutter B 2000 Compiler techniques for code compaction 22 travnya 2003 u Wayback Machine ACM Trans Program Lang Syst 22 2 Mar 2000 378 415 summary Dead code detection and removal Aivosto Arhiv originalu za 5 serpnya 2012 Procitovano 12 lipnya 2012 Compares some free alternatives to DCD Dead Code Detector Java net Arhiv originalu za 23 veresnya 2012 Procitovano 12 lipnya 2012 Kompilyatory principy tehnologii instrumenty S 669 nedostizhimyj kod 713 myortvyj kod Engineering a Compiler S 550 A Yu Drozdov A M Stepanenkov Upravlyaemye pakety optimizacij V Informacionnye tehnologii i vychislitelnye sistemy 2004 3 tekst 2016 03 04 u Wayback Machine LiteraturaCooper and Torczon Engineering a Compiler Morgan Kaufmann 2011 S 544 550 593 ISBN 978 0 12 088478 0 Alfred Aho Monika Lam Ravi Seti Dzheffri Ulman Kompilyatory principy tehnologii i instrumentarij Compilers Principles Techniques and Tools 2 e izdanie M Vilyams 2008 1184 s 1500 ekz ISBN 978 5 8459 1349 4 Muchnick Steven S Advanced Compiler Design and Implementation 1997 S 580 582 ISBN 1 55860 320 4, Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Топ