Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Tip güvenliği.

Java, C#, vb. dillerin type safe olduğu söylenir. Çünkü bu dillerde belleğe direk erişemez, bellek adreslerini kullanarak çeşitli C attraksiyonları yapamazsınız. Belleğe sadece veri tiplerini kullanarak erişebilirsiniz.

Aslında C dahil hiç bir dilde belleği, kafanıza göre erişip, kullanmanın semantik bir karşılığı yoktur. Semantik karşılığı olmayan şeyler derleyici tarafından anlaşılamaz ve hataya açık kodlar başarıyla derlenir.

Örnek vermek gerekirse C ile belleğe direk erişip bir adresteki değeri başka bir adresteki değerle topladığınızı düşünelim. Bellekteki herşey sonuç itibariyle sayı olduğundan rahatlıkla toplanabilir. Ama bu, yapılan işin doğru olduğu anlamına gelmez. Çünkü birinci adresteki değer belki de müşterinin soyadıydı, diğeri de bir ürünün birim fiyatıydı. Soyad ve birim fiyat toplanmaz. Toplansa da ortaya çıkan sonucun hiç bir anlamı olmaz. Aslında soyad, birim fiyat gibi kavramlarla veri tipleri ifade edilir. Eğer bir dil bellekteki değerlerin sadece tipler üzerinden erişilmesine izin veriyorsa bu tür dillerin type-safe olduğu söylenir. Böyle olunca derleyiciniz iki farklı tipi toplamanıza ta baştan izin vermez.

Bununla birlikte type safe olduğu söylenen Java'da da, C#'ta da object adında bir tip vardır. Bu tip bütün tiplerin atası olduğundan her türlü değeri saklayabilir. Dolayısıyla müşteri soyadını bir object'e atama veya bir object içinde saklanan değeri birim fiyata cast etme gibi işlemler bu dillerde rahatlıkla yapılabilir. Yani yapıldığı zaman derleyici hata vermez. Object'in içindeki datanın ne olduğu bilinemeyeceğinden bu tarz kullanımlar da tip güvenliğinin önünde bir engel olarak durur.

C# 2.0'da generics ile bu açık kısmen kapatılmıştır.
fizikci
03 Aralık 2005 13:34
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1125 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen