Ölü kod
Bu madde veya bölüm Gereksiz kod adlı maddeye çok benzemektedir ve bu iki maddenin tek başlık altında birleştirilmesi önerilmektedir. Birleştirme işlemi yapıldıktan sonra sayfaya {{Geçmiş birleştir}} şablonunu ekleyiniz. |
Ölü kod, bilgisayar programlamasında kullanılan bir terim olup yürütülmesine rağmen sonucu kullanılmayan kaynak koduna denir.[1][2] Ölü kodun yürütülmesi, sonuçları hiçbir zaman kullanılmadığından hesaplama zamanını israf eder.
Sonuçları kullanılmasa da ölü kod ayrıksı durumlara ya da genel durum değişikliklerine yol açabilir. Bu kodun programdan uzaklaştırılması, programın çıktısını etkileyerek beklenmedik hatâların ortaya çıkmasına sebep olabilir. Derleyicinin kodu iyileştirme yaklaşımları, kod uzaklaştırmalarının programın seyrine etki edebileceği konusunda şüpheye yer bıraktığında muhâfazakâr olur ve kodu uzaklaştırmaz.
Örnek
[değiştir | kaynağı değiştir]int foo (int iX, int iY)
{
int iZ = iX/iY;
return iX*iY;
}
Bu örnekte iX ve iY'nin toplamı kullanılmamasına rağmen hesaplanmakla birlikte sıfıra bölünme durumunda bir ayrıksı durum oluşturmaktadır. Dolayısıyla ölü koddur ve programdan uzaklaştırılabilir.
Analiz
[değiştir | kaynağı değiştir]Ölü kod uzaklaştırmalası, bir çeşit derleyici optimizasyonudur. Ölü kodun analizi canlı değişken analiziyle yapılabilir. Bu analiz, statik kod analizi ve veri akışı analizinin bir çeşidi olup erişilemeyen kod analizinin aksine kontrol akışı analizine dayanmamaktadır.
Ölü kodu uzaklaştırma yöntemleri, erişilemeyen veya gereksiz kod uzaklaştırmalarıyla aynı kategoridedir.
Büyük programlarda bilhassa komple modüller söz konusu olduğunda ölü kodun tespîti ve uzaklaştırması bazen zor olur. Test yapısı, uzaklaştırılması düşünülen kodun hâlez canlı olduğu izlenimini uyandırabilir ve bazen anlaşmalar, kullanılmayan kodla programın teslîmine sebep olur.[3]
Ayrıca bakınız
[değiştir | kaynağı değiştir]Kaynakça
[değiştir | kaynağı değiştir]- ^ "Debray, S. K., Evans, W., Muth, R., and De Sutter, B. 2000. Compiler techniques for code compaction. ACM Trans. Program. Lang. Syst. 22, 2 (Mar. 2000), 378-415." 22 Mayıs 2003 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Aralık 2011.
- ^ Appel, A. W. 1998 Modern Compiler Implementation in Java. Cambridge University Press.
- ^ Douglas W. Jones Dead Code Maintenance, Risks 8.19 (Feb. 1, 1989) 8 Temmuz 2011 tarihinde Wayback Machine sitesinde arşivlendi.
Dış bağlantılar
[değiştir | kaynağı değiştir]- Dead Code Detector (DCD) simply finds never used code in your Java/JEE applications
- Comparisons of some Java Dead Code Detector
- UCDetector5 Ocak 2012 tarihinde Wayback Machine sitesinde arşivlendi. Eclipse PlugIn to find dead java code