D Programlama Dili – Programlama dersleri ve D referansı
Ali Çehreli

anahtar sözcük: [keyword], dilin kendisi için ayırmış olduğu ve iç olanakları için kullandığı sözcük
bit: [bit], 0 ve 1 değerlerini alabilen en temel bilgi birimi
derleyici: [compiler], programlama dili kodunu bilgisayarın anladığı makine koduna çeviren program
makine kodu: [machine code], mikro işlemcinin dili
metin düzenleyici: [text editor], metin yazmaya yarayan program
mikro işlemci: [CPU], bilgisayarın beyni
program: [program], bilgisayara yapacağı işleri bildiren bir dizi ifade
... bütün sözlük



İngilizce Kaynaklar


Diğer




Derleme

D programcılığında en çok kullanılan iki aracın metin düzenleyici ve derleyici olduklarını gördük. Programlar metin düzenleyicilerde yazılırlar.

D gibi dillerde derleme kavramı ve derleyicinin işlevi de hiç olmazsa kaba hatlarıyla mutlaka bilinmelidir.

Makine kodu

Bilgisayarın beyni CPU denen mikro işlemcidir. Mikro işlemciye ne işler yapacağını bildirmeye kodlama, bu bildirimlere de kod denir.

Her mikro işlemci modelinin kendisine has kodları vardır. Her mikro işlemcinin nasıl kodlanacağına mimari tasarımı aşamasında ve donanım kısıtlamaları gözetilerek karar verilir. Bu kodlar çok alt düzeyde elektronik sinyaller olarak gerçekleştirilirler. Bu tasarımda kodlama kolaylığı geri planda kaldığı için, doğrudan mikro işlemciyi kodlayarak program yazmak çok güç bir iştir.

Mikro işlemcinin adının parçası olan işlem kavramı, özel sayılar olarak belirlenmiştir. Örneğin kodları 8 bit olan hayalî bir işlemcide 4 sayısı yükleme işlemini, 5 sayısı depolama işlemini, 6 sayısı da arttırma işlemini gösteriyor olabilir. Bu hayalî işlemcide soldaki 3 bitin işlem sayısı ve sağdaki 5 bitin de o işlemde kullanılacak değer olduğunu düşünürsek, bu mikro işlemcinin makine kodu şöyle olabilir:

İşlem   Değer           Anlamı
 100    11110        YÜKLE  11110
 101    10100        DEPOLA 10100
 110    10100        ARTTIR 10100
 000    00000        BEKLE

Bit kavramına sonraki bölümlerde de değineceğim. Yukarıdaki örneği yalnızca makine kodunun ne kadar zor olabileceğini göstermek için verdim. Makine kodunun donanıma bu kadar yakın olması, oyun kağıdı veya öğrenci kayıtları gibi üst düzey kavramların bilgisayarda temsil edilmelerini son derece güç hale getirir.

Programlama dili

Mikro işlemcileri kullanmanın daha etkin yolları aranmış, ve çözüm olarak üst düzey kavramları ifade etmeye elverişli programlama dilleri geliştirilmiştir. Bu dillerin donanım kaygıları olmadığı için, özellikle kullanım kolaylığı ve ifade gücü gözetilerek tasarlanmışlardır. Programlama dilleri insanlara uygun dillerdir ve çok kabaca konuşma dillerine benzerler:

if (ortaya_kağıt_atılmış_mı()) {
   oyun_kağıdını_göster();
}

Buna rağmen, programlama dilleri çok daha sıkı kurallara sahiptirler.

Programlama dillerinin bir sorunu, anahtar sözcüklerinin geleneksel olarak İngilizce olmasıdır. Neyse ki bunlar kolayca öğrenebilecek kadar az sayıdadır. Örneğin if'in "eğer" anlamına geldiğini bir kere öğrenmek yeter.

Yorumlayıcı

Yorumlayıcı, programın kaynak kodunu okuyan ve yazıldığı amaca uygun olarak işleten bir araçtır. Örneğin, bir yorumlayıcı yukarıdaki kod verildiğinde önce ortaya_kağıt_atılmış_mı()'yı, sonra da onun sonucuna bağlı olarak oyun_kağıdını_göster()'i işletir. Programcının bakış açısından, programı yorumlayıcı ile işletmek yalnızca iki adımdan oluşur: programı yazmak ve yorumlayıcıya vermek.

Yorumlayıcı programı her işletişinde kaynak kodu baştan okumak zorundadır. Bu yüzden, yorumlayıcı ile işletilen program genel olarak o programın derlenmiş halinden daha yavaş çalışır. Ek olarak, yorumlayıcılar genelde kodu kapsamlıca incelemeden işletirler. Bu yüzden, çeşitli program hatası ancak program çalışmaya başladıktan sonra yakalanabilir.

Perl, Python, ve Ruby gibi esnek ve dinamik dillerde yazılmış programların işletilmeden önce incelenmeleri güçtür. Bu yüzden, böyle diller geleneksel olarak yorumlayıcı ile kullanılırlar.

Derleyici

Derleyici, programın kaynak kodunu okuyan başka bir araçtır. Yorumlayıcıdan farkı, kodu işletmemesi ama işletecek olan başka bir program oluşturmasıdır. Programcının yazdığı kodları işletme görevi oluşturulan bu programa aittir. (Bu program genelde makine kodu içerir.) Programcının bakış açısından, programı derleyici ile işletmek üç adımdan oluşur: programı yazmak, derlemek, ve oluşturulan programı çalıştırmak.

Yorumlayıcının aksine, derleyici kaynak kodu tek kere ve derleme sırasında okur. Bu yüzden, derlenmiş program yorumlayıcı tarafından işletilen programdan genelde daha hızlıdır. Derleyiciler kodu genelde kapsamlı olarak da inceleyebildiklerinden hem daha hızlı işleyen programlar üretebilirler hem de program hatalarının çoğunu daha program işlemeye başlamadan önce yakalayabilirler. Öte yandan, yazılan programın her değişiklikten sonra derlenmesinin gerekmesi ek bir külfet olarak görülebilir ve bazı insan hatalarının kaynağıdır. Dahası, derleyicinin ürettiği program ancak belirli bir platformda çalışabilir; programın başka bir mikro işlemci veya işletim sistemi üzerinde çalışabilmesi için tekrar derlenmesi gerekir. Ek olarak, derlenmeleri kolay olan diller yorumlayıcı kullananlardan daha az esnektirler.

Aralarında Ada, C, C++, ve D'nin de bulunduğu bazı diller güvenlik ve performans gibi nedenlerle derlenebilecek biçimde tasarlanmışlardır.

Derleme hatası

Derleyiciler programı dilin kurallarına uygun olarak derledikleri için, kural dışı kodlar gördüklerinde bir hata mesajı vererek sonlanırlar. Örneğin kapanmamış bir parantez, unutulmuş bir noktalı virgül, yanlış yazılmış bir anahtar sözcük, vs. derleme hatasına yol açar.

Derleyici bazen de kod açıkça kural dışı olmadığı halde, programcının yanlış yapmasından şüphelenebilir ve bu konuda uyarı mesajı verebilir. Program derlenmiş bile olsa, her zaman için uyarıları da hata gibi kabul edip, uyarıya neden olan kodu değiştirmek iyi olur.