Programlama dili

GTS Ansiklopedisi maddesi

GTS Ansiklopedisi Bilişim ve bilgisayar sistemleri

Programlama dili

Hesaplamaların, veri gösterimlerinin ve denetim ilişkilerinin insanlarca yazılabilir, araçlarca çözümlenebilir bir gösterimle ifade edilmesini sağlayan; sözcüksel kuralları, söz dizimi, anlamlandırma ilkeleri ve çalışma modeli bulunan biçimsel dil.

Özgünlük kanıtı 93.8/100 Çok yüksek
Diğer GTS maddelerinden uzaklık
%74
Kaynak anlatımından bağımsızlık
%100
Cümle tekilliği
%100
Üretim izi bütünlüğü
%100

İçerik karması: 1bce2cc70a6e · Kanıt kapsamı %90

Puan; içerik karması ve sürüm izi, maddeler arası metinsel uzaklık, ansiklopedi içi cümle tekilliği ve erişilebilen kaynaklardan bağımsız anlatım ölçümlerini birleştirir. Evrensel intihal kanıtı değildir.

Programlama dili, bir çözüm düşüncesi ile onu yürüten hesaplama ortamı arasında ortak bir anlatım düzeni kurar. Kaynak metindeki adlar, ifadeler, türler ve denetim yapıları belirli kurallara göre çözümlenir; derleyici ya da yorumlayıcı bu yapıyı hedef makinenin gerçekleştirebileceği işlemlere dönüştürür. Dil yalnız komut listesinden oluşmaz. Değerlerin nasıl temsil edildiği, bir adın hangi kapsamda geçerli olduğu, işlev çağrısının ne yaptığı, hataların nasıl bildirildiği ve eş zamanlı işlemlerin nasıl koordine edildiği dilin anlam modeline katılır. Aynı algoritma farklı dillerde uygulanabilir, fakat tür sistemi, bellek yönetimi, kütüphane düzeni ve araç ekosistemi çözümün güvenilirliğini, okunabilirliğini ve bakım maliyetini etkiler. Bu nedenle dil seçimi bir popülerlik sıralamasına indirgenemez; problem alanı, ekip bilgisi, uzun dönemli destek, güvenlik gereksinimi ve çalışacağı platform birlikte değerlendirilir. Dil ayrıca ekip üyeleri arasında kararların aktarıldığı teknik bir iletişim aracıdır. Aynı davranışı daha kısa yazmak her zaman daha açık anlatmak değildir; örtük dönüşümler, yan etkiler ve karmaşık ifade zincirleri bakım sırasında yanlış yoruma yol açabilir. Belgelendirme örnekleri, adlandırma geleneği ve programlama arayüzleri dil bilgisinin çevresinde ortak bir uygulama kültürü oluşturur. Bir projenin niteliği, yalnız seçilen dilin özelliklerinden değil, bu özelliklerin tutarlı ve ölçülü kullanılmasından doğar.

GTS özgün görseli

Programlama dilinde anlamın kurulması

  1. Kaynak metin Adlar, simgeler ve açıklamalar
  2. Söz dizimi İfadelerin geçerli kuruluşu
  3. Anlam Yapıların hesaplama karşılığı
  4. Çalışma zamanı Bellek, çağrı ve hata düzeni
  5. Davranış Üretilen çıktı ve dış etkiler
GTS için özgün hazırlanan şema, kaynak metnin sözcüksel çözümleme ve söz diziminden geçerek anlamlandırıldığını, tür ve çalışma zamanı kurallarıyla denetlendiğini, sonunda gözlenebilir program davranışına dönüştüğünü gösterir.

Sözcüksel yapı ve söz dizimi

Kaynak kod önce karakterlerden anlamlı birimlere ayrılır. Anahtar sözcük, ad, sayı, dize ve işleç gibi birimler sözcüksel kurallarla tanınır. Boşluk ve satır sonu bazı dillerde yalnız ayırıcıyken bazı dillerde blok veya ifade sınırını belirleyebilir. Ardından ayrıştırıcı, bu birimlerin dil bilgisindeki yapılara uyup uymadığını denetler ve çoğu araçta soyut söz dizimi ağacı oluşturur. Noktalı virgülün unutulması gibi bir yazım hatası bu aşamada bulunur. Geçerli söz dizimi ise programın amaçlanan işi yaptığı anlamına gelmez; yalnız metnin tanınan bir yapıya sahip olduğunu gösterir.

Dil bilgisinin açık tanımı araç üretimini ve farklı gerçekleştirimlerin uyumunu kolaylaştırır. Bununla birlikte yalnız biçimsel üretim kuralları, adın hangi nesneye bağlandığını veya işlecin hangi sırada değerlendirildiğini açıklamayabilir. Öncelik, birleşme yönü, girintinin anlamı ve bağlama duyarlı kısıtlar ayrıca belirtilir. Hata iletisinin niteliği de dil kullanımını etkiler: Ayrıştırıcı yalnız ilk beklenmeyen simgeyi göstermek yerine olası nedeni ve ilgili aralığı bildirdiğinde geliştirici sorunu daha hızlı bulur. Kaynak biçimlendiriciler söz dizimini değiştirmeden ortak bir görünüm sağlayarak incelemeyi kolaylaştırır.

Anlam kuralları ve yürütme modeli

Programlama dilinin anlamı, geçerli bir yapının hangi hesaplamayı ifade ettiğini belirler. Atamanın yeni değer üretmesi, değişkenin mevcut hücresini değiştirmesi veya değiştirilemez bağ kurması farklı modellerdir. İşlev argümanlarının değerle, başvuruyla ya da başka bir aktarım düzeniyle iletilmesi yan etkileri değiştirir. Değerlendirme sırası belirtilmemişse aynı kaynak iki gerçekleştirimde farklı gözlenebilir sonuç doğurabilir. Resmî belirtim bu ayrıntıları sınırlar; uygulama belgesi ise standartta serbest bırakılan davranışı ve gerçekleştirim tercihlerini açıklar.

Kaynak metin doğrudan yorumlanabilir, makine koduna derlenebilir veya ara gösterime dönüştürülüp sanal makinede yürütülebilir. Bu ayrımlar kesin kutular değildir; çalışma sırasında sıcak bölümleri derleyen sistemler iki yaklaşımı birleştirir. Derleme önceden hata bulma ve hedefe özgü iyileştirme olanağı sağlar. Yorumlama etkileşimli kullanım ve taşınabilirlik sunabilir. Ancak performans yalnız dil etiketinden çıkmaz; gerçekleştirim, iyileştirici, programın veri erişimi ve kullanılan kütüphane birlikte ölçülür. Yürütme modeli bilinmeden süre sonucunu dilin değişmez özelliği gibi sunmak yanıltıcıdır.

Tür sistemleri ve bellek yönetimi

Tür sistemi, değerleri destekledikleri işlemlere göre sınıflandırır ve bazı geçersiz birleşimleri yürütmeden önce engeller. Türlerin açıkça yazılması veya bağlamdan çıkarılması, denetimin derleme sırasında ya da çalışma sırasında yapılması ayrı boyutlardır. Güçlü bir tür sistemi bütün mantık hatalarını önlemez; metre ile saniyeyi aynı sayı türünde tutan program biçimsel olarak geçerli olabilir. Cebirsel veri türleri, kalıtım, arayüz ve genel türler farklı soyutlama yolları sunar. Tür karmaşıklığı, sağladığı güvence ve okunma maliyetiyle birlikte değerlendirilir.

Bellek yönetimi, nesnelerin ne zaman oluşturulup ne zaman geçersizleştiğini belirler. Elle ayırma yüksek denetim sağlayabilir; unutulan serbest bırakma sızıntıya, erken bırakma geçersiz erişime yol açar. Otomatik çöp toplama erişilemeyen nesneleri bulur, fakat gecikme ve ek bellek maliyeti taşır. Sahiplik ve ödünç alma gibi modeller yaşam süresini statik kurallarla sınırlar. Seçilen yöntem, gerçek zaman gereksinimi, kaynak kıtlığı ve güvenlik hedefiyle ilişkilidir. Kütüphane sınırında farklı bellek modellerinin buluşması ayrıca dikkat ister.

Programlama paradigmaları ve soyutlama

Buyrumsal yaklaşım durumu değiştiren işlem sırasını, işlevsel yaklaşım değer dönüşümlerini ve işlev bileşimini, nesne yönelimli yaklaşım veri ile davranışı ortak bir arayüzde düzenlemeyi öne çıkarır. Mantıksal programlama ise ilişkileri ve sağlanması gereken koşulları bildirir. Gerçek diller çoğu zaman birden fazla yaklaşımı destekler. Paradigma, her soruna tek doğru biçim dayatan kimlik değildir; belirli sorunları görünür kılan kavram ve araç kümesidir. Durum değişiminin yoğun olduğu arayüz koduyla toplu veri dönüşümü aynı anlatım biçiminden eşit ölçüde yararlanmayabilir.

Soyutlama, ayrıntıyı saklamak kadar hangi ayrıntının sözleşmede kalacağını seçmektir. İşlev, modül, sınıf ve paket; kullanıcıya kararlı bir arayüz sunarken iç gerçekleştirim değişikliğine izin verir. Aşırı soyutlama basit veri akışını izlemeyi güçleştirebilir; yetersiz soyutlama aynı kuralın birçok yerde yinelenmesine yol açar. İyi sınır, birlikte değişen sorumlulukları toplar ve bağımsız değişmesi gereken bölümleri ayırır. Adlandırma, hata sözleşmesi ve yan etkilerin görünürlüğü dilin teknik özellikleri kadar programın insanlar tarafından anlaşılmasını belirler.

Araç ekosistemi, birlikte çalışabilirlik ve taşınabilirlik

Dilin kullanılabilirliği derleyici veya yorumlayıcıyla bitmez. Paket yöneticisi, hata ayıklayıcı, sınama çerçevesi, statik çözümleyici, biçimlendirici ve belgelendirme aracı geliştirme döngüsünü oluşturur. Kütüphanelerin sürüm uyumluluğu ve bakım durumu proje ömrünü etkiler. Bağımlılığın yalnız adını kaydetmek, aynı yapının ileride yeniden kurulmasını garanti etmez; sürüm, bütünlük özeti ve yapı seçenekleri de saklanır. Üçüncü taraf paket kod yürüttüğü için tedarik zinciri güvenliği dil ekosisteminin ayrılmaz sorunudur.

Taşınabilir kaynak, bütün ortamlarda aynı davranış anlamına gelmeyebilir. Dosya yolları, karakter kodlaması, sayı boyutu, saat dilimi ve işletim sistemi arayüzleri farklılaşabilir. Yabancı işlev arayüzü başka dildeki kütüphaneyi çağırmayı sağlar; veri yerleşimi ve hata aktarımı bu sınırda açıkça tanımlanmalıdır. WebAssembly veya sanal makine gibi ara hedefler platform ayrıntısını azaltabilir, fakat çevre yetkileri ve performans özellikleri sürer. Desteklenen ortam matrisi otomatik sınamalarla denetlenmediğinde taşınabilirlik yalnız varsayım olarak kalır.

Dil seçimi, evrim ve GTS bağlantısı

Dil seçerken görev alanı, başarım sınırı, güvenlik, ekip deneyimi, bakım süresi ve mevcut sistemlerle uyum birlikte puanlanır. Kısa bir veri dönüştürme aracıyla yıllarca işletilecek dağıtık hizmet aynı önceliklere sahip değildir. Yeni sürüm söz dizimi ve kütüphane yeteneği eklerken eski programların davranışını korumaya çalışabilir; kaldırılan özellikler için geçiş dönemi ve otomatik dönüştürme aracı gerekir. Dilin standardı ile belirli gerçekleştirim sürümü ayrılır. “Dil destekliyor” iddiası, kullanılan araç zincirinin gerçekten bu özelliği sağladığı denetlenerek yazılır.

T-BDLD'de “programlama dili”, “programlama dilleri”, “derleyici”, “yorumlayıcı” ve “kaynak kod” sorguları terimin akademik ve genel kullanımdaki canlı bağlamlarını gösterir. Kaynak dosyalardan alınmış kod satırları doğal cümle gibi değerlendirilmez; sürüm numarası ve kütüphane adı da bağımsız sözlükbirim sanılmaz. Türkçe metinlerde “dil” sözcüğünün insan diliyle ilgili kullanımları teknik öbek sorgusundan ayrılır. Yeni metin geldikçe sıklık ve son görülme zamanı yenilenirken ansiklopedi maddesinin kavramsal içeriği ancak doğrulanmış editoryal değişiklikle yeni sürüme geçer.

Doğrulanmış kaynakça

  1. Association for Computing Machinery, IEEE Computer Society ve Association for the Advancement of Artificial Intelligence (2024). Computer Science Curricula 2023: The Final Report. Kaynağı aç
  2. International Organization for Standardization (1999). ISO/IEC 2382-15:1999, Information technology — Vocabulary — Part 15: Programming languages. Kaynağı aç
  3. Python Software Foundation. The Python Language Reference, Python 3 Documentation. Kaynağı aç

Editoryal açıklama

Özgün ve izlenebilir sentez

GTS Ansiklopedisi maddeleri GTS için özgün olarak yazılır. Kaynaklar olguları, kavram sınırlarını ve teknik ayrıntıları doğrulamak için kullanılır; hiçbir ansiklopedi, sözlük, makale, standart veya teknik belgedeki anlatım aynen alınmaz ya da yüzeysel biçimde yeniden yazılmaz. Maddeler önce konu sınırları ve kaynak dayanakları belirlenerek hazırlanır. Ardından T-BDLD içinde terimlerin kullanım biçimleri, yakın çevreleri ve kaynak yayılımları incelenir; kaynak bilgisi ile derlem gözlemi birbirinden ayrılarak özgün bir anlatıda birleştirilir. Editoryal denetimden geçen her değişiklik aynı kalıcı madde adresinde yeni bir sürüm numarası ve TSİ güncelleme zamanı alır.

Ansiklopedi maddesi kaynak gösterimi

Programlama dili