Merhaba arkadaşlar, kendi blogumda yazdığım bir makaleyi paylaşmak istiyorum.

Giriş
Bu makale de en çok kafa karıştıran şeylerden biri olan derleyiciler ve yorumlayıcılardan bahsetmek istiyorum.Önemli bir konu olduğunu ve kesinlikle bilinmesi gereken birşey olduğunu düşünüyorum.Gereksiz detaylarla sizleri sıkmadan direk konuya geçeyim.

Derleyiciler
Derleyiciler, yazdığımız kodları bilgisayar diline çevirerek bilgisayarın anlamasını sağlar.Örnek olarak windows üzerinde c++ ile kod yazdık.Programımızı derlediğimiz zaman bilgisayar bizim yazdıklarımızı anlayacak ve işlemleri yapacak.

Derleyiciler üzerinde bulunduğu işletim sistemine göre derleme yapar, yani windows üzerinde derlediğimiz program linux üzerinde çalışmayacaktır.Bunun sebebi tüm işletim sistemlerinin yapısının farklı olması.Windows ve Mac OS X işletim sistemlerinin dosya sistemleri farklıdır mesela.

Bu durumda windows üzerinde yazdığımız programın diğer işletim sistemlerinde çalışması için ne yapmamız gerekiyor ? Tabi ki diğer işletim sistemlerinde de derlememiz gerekiyor. Örnek verecek olursak windows üzerinde derlenen bir programın uzantısı “exe” .Mac OS üzerinde derlenen programların uzantısı “app” olur.Özetle derlenen dillerin diğer işletim sistemlerinde çalışabilmesi için hedef işletim sistemlerinde derlenmesi gerekiyor.



Yorumlayıcılar
Yorumlayıcılar yine derleyiciler gibi yazdığımız kodların bilgisayar tarafından anlaşılıp işlem yapılmasını sağlar.Ancak çalışma şekilleri farklıdır. Derleyiciler, derleme işlemi sırasında kodlarımızı bilgisayar diline çevirirken yorumlayıcılar çalışma sırasında bu işlemi yapar.

Peki çalışma sırasında bu işlemi yapmanın avantajı nedir? Anlık tercüme tüm işletim sistemleri için tek tek derleme yapmamayı sağlar.Bu sayede windows üzerinde yazdığımız kod parçacıkları rahatlıkla Mac OS ya da linux vb işletim sistemlerinde çalışacaktır.

Oldukça basit bir örnek vererek derleyiciler ve yorumlayıcılar arasında ki farkı anlatayım.Düşünün ki yarın Amerika’da büyük bir konferans vereceksiniz ve ingilizce bilmiyorsunuz.Bu durumda ne yapacaksınız? Tabi ki konferans boyunca yanınızda bir tercüman bulunacak ve bütün konuşmalarınızı ingilizceye çevirecek.Bu tercümanın derleyici olduğunu düşünün.

Konferansa gittiniz yanınızda tercümanınız var ama sadece ingilizce biliyor,yani sizin söylediklerinizi sadece ingilizceye çevirebilir.Ancak konferansa dünyanın dört bir yanından gelenler var ve bunlar kendi dilleri haricinde başka bir dil bilmiyor.Bu durumda yanınızda ki tercümanın hiçbir anlamı kalmayacaktır.Bu durumda ne yapılır,tüm dinleyicilerin kulağında anlık çeviri yapan bir kulaklık düşünün.Sizin söylediklerinizde anında dinleyicilere kendi dilinde çeviri yapan kulaklık ise yorumlayıcıdır.

Hangi diller derlenir ? Hangi diller yorumlanır ?
Yukarıda anlattıklarımdan sonra yorumlayıcılar çok daha cazip gibi geliyor.Peki her dil yorumlanır mı ? Evet her dil yorumlanabilir(mantık olarak),ancak C#,C++,C,Delphi,Visual Basic gibi diller derlenen dillerdir(Özel yorumlayıcı yazılmadığı sürece).

Python,Java,Ruby gibi diller ise kendilerine yazılmış özel yorumlayıcıları olan dillerdir.Bu sayede her işletim sisteminde üzerinde değişiklik yapmamıza gerek kalmadan rahatlıkla çalışabilirler.

Umarım faydalı olur.
Kaynak : http://www.ozdemiremre.com/derleyiciler-ve-yorumlayicilar/