Ölü kod

Ö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

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

Ö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

Kaynakça

  1. "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.
  2. Appel, A. W. 1998 Modern Compiler Implementation in Java. Cambridge University Press.
  3. 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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.