Tür sistemi

Tür sistemi (), bir programlama dilindeki ifadelerin, değişkenlerin ve fonksiyonların hangi türde değerler alabileceğini tanımlayan kurallar bütünüdür. Bu sistem, programların doğruluğunu ve güvenliğini artırmak için tasarlanmıştır.

 Temel Kavramlar 
 Tür Denetimi 
 Statik tür denetimi: Derleme zamanında yapılır (Örn: Java, Rust)
   int sayi = "metin"; // Java derleme hatası

 Dinamik tür denetimi: Çalışma zamanında yapılır (Örn: Python, JavaScript)
  sayi = "metin"  # Hata vermez (runtime'da kontrol)


 Tür Çıkarımı 
Derleyicinin türü otomatik belirlemesi yani derleyicinin, programcı tür belirtmese bile değişken veya fonksiyon türlerini otomatik anlamasıdır.

 Haskell'de değişken tür çıkarımı

topla x y = x + y 
 Haskel'de fonksiyon türü:
Num a => a -> a -> a

 Tür Sistemleri Sınıflandırması 
Aşağıdaki tabloda, programlama dillerinde kullanılan tür sistemleri statik ve dinamik olarak sınıflandırılmış; denetim zamanı, örnek diller ve sağladıkları avantajlar açısından karşılaştırmalı olarak sunulmuştur.

+   Karşılaştırma Kriteri Statik Türleme Dinamik Türleme Tür Denetimi Zamanı Derleme Zamanı Çalışma Zamanı Örnek Programlama Dilleri C++, Java, Haskel Python, Ruby Başlıca Avantajı Hataların erken tespiti Daha fazla esneklik

 Önemli Tür Sistemleri 
 Güçlü/Zayıf Türleme 
 Güçlü: Örtük dönüşüm yok (Haskell)
     5 + "5" tip uyumsuzluğu hatası

 Zayıf: Örtük dönüşüm var (JavaScript)

  5 + "5" // "55" string birleştirme


 Jenerik Türler 
 TypeScript'te jenerik fonksiyon

 function identity<T>(arg: T): T {
  return arg;
}


 Tarihsel Gelişim 
 1960: ALGOL - İlk statik tür sistemi
 1973: C - Zayıf tür kontrolleri
 1990: Haskell - Güçlü statik türleme
 1995: Java – Nesne yönelimli ve statik türlemeli yapı  
 2012: Rust - Mülkiyet tabanlı tür güvenliği

 Kaynakça 

 Ayrıca Bakınız 
 Tür çıkarımı
 Tür güvenliği
 Jenerik programlama

Kategori:Programlama dili kavramları
Kategori:Programlama teorisi
Kategori:Bilgisayar bilimi