İçeriğe atla

Tür sistemi

Vikipedi, özgür ansiklopedi

Tür sistemi (İngilizce: type system), 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.[1]

Temel Kavramlar

[değiştir | kaynağı değiştir]
  int sayi = "metin"; // Java derleme hatası
  
  sayi = "metin"  # Hata vermez (runtime'da kontrol)
  

Tür Çıkarımı

[değiştir | kaynağı değiştir]

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ı

[değiştir | kaynağı değiştir]

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,[2] Haskel[3] Python,[4] Ruby[5]
Başlıca Avantajı Hataların erken tespiti Daha fazla esneklik

Önemli Tür Sistemleri

[değiştir | kaynağı değiştir]

Güçlü/Zayıf Türleme

[değiştir | kaynağı değiştir]
  • Güçlü: Örtük dönüşüm yok (Haskell)
   5 + "5" tip uyumsuzluğu hatası
  
  5 + "5" // "55" string birleştirme
 

Jenerik Türler

[değiştir | kaynağı değiştir]
function identity<T>(arg: T): T {
  return arg;
}
 

Tarihsel Gelişim

[değiştir | kaynağı değiştir]
  • 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ı[2]
  • 2012: Rust - Mülkiyet tabanlı tür güvenliği[6]
  1. Pierce, Benjamin C. (2002). Types and Programming Languages. MIT Press. s. 1-15. ISBN 978-0262162098.
  2. 1 2 "The Java™ Language Specification". 13 Ocak 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2025.
  3. "Type Systems". Haskell Wiki. 1 Eylül 2023 tarihinde kaynağından arşivlendi.
  4. "Python Language Specifications". 8 Mayıs 2025 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2025.
  5. "How do developers use dynamic features? The case of Ruby". 15 Nisan 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2025.
  6. Klabnik, Steve; Nichols, Carol (2019). "4". The Rust Programming Language. No Starch Press. ISBN 978-1718500440.

Ayrıca Bakınız

[değiştir | kaynağı değiştir]