(Bildiğim kadarıyla) yorumlanmış bir “dil” ya da derlenmiş bir “dil” diye bir şey yoktur.
Diller, kodun anahtar sözcükleri, akış yapıları ve diğer çeşitli şeylerin sözdizimini ve anlamını belirtir, ancak bunun dil spesifikasyonunda derlenip yorumlanmayacağını belirten bir dil bilmiyorum.
Şimdi, eğer bir dil derleyicisini bir dil tercümanına karşı kullandığınızda şüphe ediyorsanız, derleyicinin pro / con'larına ve tercümana ve projenin amacına gerçekten gelir.
Örneğin, MRuby derleyicisini, MRI ruby interpreter yerine java kütüphaneleriyle daha kolay entegrasyon için kullanabilirsiniz. JRuby üzerinde MRI yakut yorumlayıcısını kullanmak için muhtemelen nedenler de var, ancak bu dili bilmiyorum ve bununla konuşamıyorum.
Tercümanların faydaları:
- Hiçbir derleme, kodu düzenlemeden uygulamanın test edilmesine kadar geçen sürenin azalabileceği anlamına gelir
- Birden fazla mimari için ikili dosyalar oluşturmaya gerek yoktur çünkü yorumlayıcı mimari soyutlamayı yönetir (yine de tamsayı boyutlarını doğru bir şekilde işleyen komut dosyaları için endişelenmeniz gerekebilir , sadece ikili dağıtım değil)
Derleyicilerin avantajları:
- Derlenmiş yerel kod bir tercümanın yükünü taşımamaktadır ve bu nedenle zaman ve mekanda genellikle daha verimlidir
- Birlikte çalışabilirlik genellikle daha iyidir, komut dosyalarıyla proc-içi birlikte çalışmanın tek yolu standart bir FFI yerine bir yorumlayıcıdır
- Yorumlayıcının derlenmediği mimarileri destekleme yeteneği (gömülü sistemler gibi)
Ancak, vakaların% 90'ında bahse girerim, bunun gibi bir şeye gider: Bu yazılımı blub'a yazmak istiyorum çünkü iyi biliyorum ve iyi bir iş çıkarmalı. Blub yorumlayıcısını (veya derleyicisini) kullanacağım çünkü blub'da yazılım yazmak için genel kabul gören kanonik yöntemdir.
Yani TL; DR belirli kullanımlar için derleyici vs tercüman vaka bazında karşılaştırarak bir davada, temelde.
Ayrıca, FFI: Yabancı Fonksiyon Arayüzü, diğer bir deyişle diğer dillerle birlikte çalışmak için arayüz. Vikipedi'de daha fazla okuma