SORU
16 Temmuz 2010, Cuma


Derlenmiş vs Yorumlanan Diller

Farkı daha iyi anlamak için çalışıyorum. Açıklamalar online bir sürü buldum, ama soyut farklılıklar yerine pratik sonuçları doğru eğilimindedir.

Programlama deneyimlerimi en CPython () dinamik, yorumlanabilir ve Java (statik, derlenmiş) ile olmuştur. Ancak, yorumlanmış ve derlenmiş diller başka türlü olduğunu anlıyorum. Çalıştırılabilir dosyalar programlar derlenmiş dilde yazılmış dağıtılabilir olması bir yana, her tür dezavantajları/avantajları var mı? Çoğu zaman, insanlar yorumlanan diller etkileşimli, ama derlenen diller interaktif uygulamaları da inanıyorum, doğru kullanılan tartıştığını duydum.

CEVAP
16 Temmuz 2010, Cuma


Derlenmiş bir dil programı, bir kez derlenmiş, hedef makine talimatları ifade edilir. Örneğin, "" kaynak kodu işlem doğrudan "" öğretim makine kodu. EKLEMEK için çevrilmiş bir ek

Yorumlanan bir dil talimatları doğrudan hedef makine tarafından yürütüldü biridir, ama başka bir program tarafından okunan idam yerine normalde . ( ^em>yerel makine dili) ile yazılmış. Örneğin, aynı "" operasyon olacağını kabul ederek tercüman çalıştırmak zaman, hangi ara o zaman kendi "Ekle(a,b)" fonksiyonu ile ilgili tartışmalar, o zaman idam makine kodu "ADD" talimatı.

Derlenmiş bir dil olarak yorumlanan bir dil yapabileceğiniz her şeyi yapabilirsiniz ya da tam tersi - tam Turing ikisi de. Ancak her iki uygulama ve kullanım avantajları ve dezavantajları var.

Tamamen (titiz beni affet!) genelleme yapacağım ama, kabaca, burada derlenen diller avantajları vardır:

  • Doğrudan hedef makinenin yerel kodu kullanarak daha hızlı performans
  • Fırsat aşama derleme sırasında oldukça güçlü optimizasyon uygulamak için

Ve burada yorumlanan diller avantajları vardır:

  • Uygulanması daha kolay (iyi Derleyiciler yazmak çok zor!!)
  • Derleme bir sahne kaçmana gerek yok: kod doğrudan çalıştırabilirsiniz "fly"
  • Dinamik diller için daha uygun olabilir

Bayt kodu derleme gibi modern teknikleri fazladan karmaşıklık ekleyin - burada ne derleyici "sanal makine" temel donanım olarak aynı değildir. bir hedef olduğunu unutmayın Bu sanal makine talimatları o zaman daha sonraki bir aşamada tekrar yerel kod (Java JVM JİT derleyici tarafından yapılmış gibi) almak için derlenmiş olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Wills

    David Wills

    31 Aralık 2007
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013