Yazan: Şadi Evren ŞEKER

Bilgisayar dünyasında yorumlayıcı terimi bir programı veya bir komutu çalıştırmaya yarayan programlar için kullanılır. Genellikle derleyiciler ile karışan ve çoğu zaman aynı görevi icra eden yorumlayıcılar da derleyiciler gibi kodu bir dilden başka bir dile çevirme işlemini yerine getirirler. Basitçe görevleri ve tipleri aşağıdaki şekilde listelenebilir:
1. Kaynak kodu çalıştırmak
2. Bir kaynak kodu çalıştırılabilir farklı bir kod haline tercüme etmek
3. Daha önceden hazırlanmış olan (çoğu zaman önceden derlenmiş bir koddur) kodları yeri geldiğinde çalıştırmak

Perl, Python diller 2. tip dillere örnekken JAVA sanal makinesi ve Pascal dilleri 3. seviye dillere örnek olarak gösterilebilir. Çünkü java ve pascal’da daha önceden hazırlanmış olan program parçaları çalışma zamanında (execution time) bağlanmaktadır.

Derleyiciler (compiler) ile Yorumlayıcılar (Interpreter) arasındaki farklar:
Basitçe, bir kaynak kodu hedef koda çevirdikten sonra çalıştıran ve dolayısıyla koddaki hataları yakalama işlemini ve kodun iyileştirilmesini daha kod çalıştırmadan yapan çeviricilere derleyici, kodu satır satır veya bloklar halinde çalıştırıp sırası gelmeyen satırları hiç çalıştırmayan bu satırlardaki hataları hiçbir zaman göremeyen ve kodun bütününe ait iyileştirmeleri yapamayan çeviricilere de yorumlayıcı (interpreter) adı verilmektedir.

Genel kanının tersine bir dilin derleyici veya yorumlayıcı özelliği yoktur. Yani C dili için sadece derleyicisi bulunan bir dildir demek yanlış olur. Bu durum bütün diller için geçerlidir. Her dil için bir derleyici veya yorumlayıcı tasarlanabilir. Ama daha genel bir bakışla, her dilin aslında yorumlayıcı (interpreter) yapısında bir çalışması olduğunu söylemek yanlış olmaz. Sonuçta bilgisayarın işlemcisinde anlık olarak tek bir işlem yapılabilmektedir ve çalışması istenen kod, işlemciye sırayla verilecek ve satır satır çalıştırılacaktır.

Genelde bir ortam yazılan dilin çalıştırılmasına kadar geçen sürede ya bir derleyici yada bir yorumlayıcı kullanılmaktadır. Gelişmekte olan teknolojiyle iki programı birden kullanan diller de türemiştir. Örneğin JAVA dilinde kod önce derlenerek byte code adı verilen ve sadece java sanal makinelarında (java virtual machine) çalıştırlabilen bir kod üretilmektedir. Bu üretilen ara kod daha sonra java sanal makinasında bir yorumlayıcı yapısına uygun olarak çalıştırılmaktadır.

Yorumlar

  1. Cengiz

    iyide derlenen yazılımlar makine içinde makine kodu olarak çalışıyor. İnterpreter yazılımlar ise yazıldıkları dilden işletimleri sırasında makine koduna döndürülerek ancak ondan sonra icra edilerek çalışıyor. Aradaki bu fazladan çevrim yükü ve bunun sonuca zamansal olarak etkisi ile donanımı kastırması ne olacak… Sonuçta aynı değil yani ikisi de aslında… Compile heryerde Compile dır

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir