Derleyiciler ve Çevirmenler Arasındaki Farklar

Önce Java ve C # programlama dilleri ortaya çıktı, bilgisayar programları sadece derlenmiş veya yorumlanır. Assembly Language, C, C ++, Fortran, Pascal gibi diller neredeyse her zaman makine kodunda derlendi. Temel, VbScript ve JavaScript gibi diller genellikle yorumlanır.

Peki derlenmiş bir program ile Yorumlanmış bir program arasındaki fark nedir?

Derleme

Bir program yazmak için şu adımları uygulayın:

  1. Programı Düzenle
  2. Programı Makine kodu dosyalarına derleyin.
  3. Makine kodu dosyalarını çalıştırılabilir bir programa (exe olarak da bilinir) bağlayın.
  4. Programda Hata Ayıklama veya Çalıştırma

Turbo Pascal ve Delphi gibi bazı dillerde adım 2 ve 3 birleştirilir.

Makine kodu dosyaları, nihai programı oluşturmak için birbirine bağlanması gereken makine kodunun bağımsız modüllerdir. Ayrı makine kodu dosyalarına sahip olmanın nedeni verimliliktir; derleyiciler sadece derlemek zorundadır kaynak kodu değişti. Değişmemiş modüllerdeki makine kodu dosyaları yeniden kullanılır. Bu uygulamanın yapılması olarak bilinir. Tüm kaynak kodlarını yeniden derlemek ve yeniden oluşturmak isterseniz, derleme olarak bilinir.

instagram viewer

Bağlama, farklı modüller arasındaki tüm fonksiyon çağrılarının birbirine bağlandığı, bellek konumlarının tahsis edildiği teknik olarak karmaşık bir süreçtir değişkenler ve tüm kodlar belleğe yerleştirilir, daha sonra tam bir program olarak diske yazılır. Tüm makine kodu dosyaları belleğe okunmalı ve birbirine bağlanmalıdır, bu genellikle derlemekten daha yavaş bir adımdır.

yorumlama

Bir programı tercüman aracılığıyla çalıştırmak için gereken adımlar şunlardır:

  1. Programı Düzenle
  2. Programda Hata Ayıklama veya Çalıştırma

Bu çok daha hızlı bir işlemdir ve acemi programcıların kodlarını bir derleyici kullanmaktan daha hızlı düzenlemesine ve test etmesine yardımcı olur. Dezavantajı, yorumlanan programların derlenmiş programlardan çok daha yavaş çalışmasıdır. Her kod satırının yeniden okunması ve ardından yeniden işlenmesi gerektiği kadar 5-10 kat daha yavaştır.

Java ve C # girin

Bu dillerin her ikisi de yarı derlenmiştir. Yorumlama için optimize edilmiş bir ara kod oluştururlar. Bu ara dil, temeldeki donanımdan bağımsızdır ve bu, bağlantı noktasını kolaylaştırır bunun için bir tercüman yazıldığı sürece, diğer işlemcilere yazılan programlar donanım.

Java, derlendiğinde, çalışma zamanında bir Java Sanal Makinesi (JVM) tarafından yorumlanan bayt kodu üretir. Birçok JVM, bayt kodunu yerel makine koduna dönüştüren ve daha sonra yorumlama hızını artırmak için bu kodu çalıştıran Just-In-Time derleyicisini kullanır. Aslında, Java kaynak kodu iki aşamalı bir işlemde derlenir.

C #, daha önce Microsoft Ara Dil MSIL olarak bilinen Ortak Ara Dil (CIL) olarak derlenmiştir. Bu, çöp toplama ve Just-In-Time derlemesi gibi destek hizmetleri sağlayan bir ortam olan .NET çerçevesinin bir parçası olan Common Language Runtime (CLR) tarafından çalıştırılır.

Hem Java hem de C # hızlandırma teknikleri kullanır, böylece etkin hız neredeyse derlenmiş bir dil kadar hızlıdır. Uygulama, disk dosyalarını okumak veya çalıştırmak gibi giriş ve çıkış yapmak için çok zaman harcıyorsa veri tabanı sorgular sonra hız farkı zar zor farkedilir.

Bu benim için ne anlama geliyor?

Çok özel bir hız gereksiniminiz olmadığı ve kare hızını saniyede birkaç kare artırmanız gerekmedikçe, hızı unutabilirsiniz. C, C ++ veya C # 'dan herhangi biri oyunlar, derleyiciler ve işletim sistemleri için yeterli hızı sağlayacaktır.