Tavsiye, 2024

Editörün Seçimi

Derleyici ve Tercüman Arasındaki Fark

Bir derleyici, kaynak dili (üst seviye dil) nesne diline (makine dili) dönüştüren bir tercümandır. Bir derleyici aksine, tercüman, kaynak bir dilde yazılmış programların yürütülmesini taklit eden bir programdır. Derleyici ve tercüman arasındaki diğer bir fark, Derleyici'nin tüm programı bir kerede dönüştürürken, Öte yandan tercümanın programı aynı anda tek bir satır alarak dönüştürmesidir.

Açıkçası, insanların ve bilgisayar gibi bir elektronik cihazın algılanabilirliği farklıdır. İnsanlar doğal dilleri kullanarak her şeyi anlayabilir, ancak bir bilgisayar anlamıyor. Bilgisayarın okunabilir formda yazılmış dilleri bilgisayar tarafından okunabilir forma dönüştürmek için bir tercümana ihtiyacı vardır.

Derleyici ve tercüman dil tercüman türleridir. Dil çevirmeni nedir? Bu soru aklınızda ortaya çıkıyor olabilir.

Bir dil çevirmeni, programları insan tarafından okunabilen formdaki bir kaynak dilden bir nesne dilinde eşdeğer bir programa çeviren bir yazılımdır. Kaynak dil, genellikle üst düzey bir programlama dilidir ve nesne dili, genellikle gerçek bir bilgisayarın makine dilidir.

Karşılaştırma Tablosu

Karşılaştırma için temelDerleyicitercüman
GirişBir seferde tüm bir program alır.
Bir seferde tek bir kod satırı veya talimat alır.
ÇıktıAra nesne kodunu üretir.Herhangi bir ara nesne kodu üretmez.
Çalışma mekanizması
Derleme işlemden önce yapılır.Derleme ve yürütme aynı anda yapılır.
hız
Nispeten hızlıYavaş
Bellek
Bellek gereksinimi, nesne kodu oluşturulmasından kaynaklanmaktadır.Ara nesne kodu oluşturmadığından daha az bellek gerektirir.
Hatalar
Derlemeden sonraki tüm hataları aynı anda görüntüleyin.Her satırın hatasını birer birer gösterir.
Hata algılamaZorNispeten kolay
Programlama dilleriyle ilgili
C, C ++, C #, Scala, typescript derleyici kullanır.Java, PHP, Perl, Python, Ruby tercüman kullanır.

Derleyicinin tanımı

Derleyici, yüksek dilde yazılmış bir programı okuyan ve onu makineye veya düşük seviyeli dile çeviren ve programda bulunan hataları bildiren bir programdır. Bir seferde tüm kaynak kodunu dönüştürür veya bunu yapmak için birden fazla paso alabilir, ancak sonunda kullanıcı çalışmaya hazır olan derlenmiş kodu alır.

Derleyici fazlar üzerinde çalışır; çeşitli aşamalar iki bölüme ayrılabilir:

  • Derleyicinin Analiz Aşaması ayrıca, programın temel kurucu parçalara bölündüğü ve ara kodun üretildiği kodun dilbilgisi, anlamsal ve sözdizimini kontrol ettiği ön uç olarak da adlandırılır. Analiz aşaması, sözcüksel analiz cihazı, anlamsal analiz cihazı ve sözdizimi analizörü içerir.
  • Derleyicinin sentez aşaması ayrıca ara kodun optimize edildiği ve hedef kodun üretildiği arka uç olarak da bilinir. Sentez aşaması, kod iyileştirici ve kod oluşturucu içerir.

BİLEŞENİN AŞAMALARI

Şimdi her aşamadaki çalışmayı detaylı olarak anlayalım.

  1. Sözlüksel Analiz : Kodu karakter akışı olarak tarar, karakter dizisini sözcükler halinde gruplandırır ve programlama diline referansla bir dizi belirteç çıkarır.
  2. Sözdizimi Analizörü : Bu aşamada, önceki aşamada üretilen jetonlar, ifadelerin sözdizimsel olarak doğru olup olmadığına, programlama dilinin gramerine göre kontrol edilir. Bunu yapmak için ayrıştırma ağaçları yapar.
  3. Anlamsal Çözümleyici : Önceki aşamada üretilen ifadelerin ve ifadelerin programlama dilinin kurallarına uyup uymadığını doğrular ve açıklamalı ayrıştırma ağaçları oluşturur.
  4. Ara kod üreteci : Kaynak kodun eşdeğer ara kodunu oluşturur. Ara kodun birçok temsili vardır, ancak TAC (Üç Adres Kodu) en yaygın kullanılanıdır.
  5. Kod Doktoru : Programın zaman ve mekan gereksinimini arttırır. Bunu yapmak için programda bulunan fazlalık kodu ortadan kaldırır.
  6. Kod oluşturucu : Bu, belirli bir makine için hedef kodun üretildiği derleyicinin son aşamasıdır. Bellek yönetimi, Register atama ve makineye özel optimizasyon gibi işlemleri gerçekleştirir.

Sembol tablosu, tanımlayıcıları depoladığı ilgili veri tipi ile birlikte yöneten bir veri yapısıdır. Hata İşleyicisi, derleyicinin farklı aşamaları arasında karşılaşılan hataları algılar, raporlar, düzeltir.

Tercüman tanımı

Tercüman bir programlama dili uygulamak için bir alternatiftir ve derleyici ile aynı işi yapar. Tercüman, bir derleyiciye benzer şekilde lexing, ayrıştırma ve tip kontrolü yapar. Ancak tercüman, sözdizimi ağacından kod üretmek yerine, sözdizim ağacını doğrudan ifadelere erişmek ve deyimi çalıştırmak için işler.

Bir tercüman, aynı sözdizimi ağacının bir kereden fazla işlenmesini gerektirebilir; bu nedenle, yorumlamanın derlenmiş programın yürütülmesinden nispeten daha yavaştır.

Derleme ve yorumlama muhtemelen bir programlama dilini uygulamak için birleştirilmiştir. Bir derleyicinin orta seviye kod ürettiği kod, makine koduna derlenmek yerine yorumlanır.

Bir tercüman kullanmak, programın geliştirilmesi sırasında avantajlıdır; burada en önemli bölüm, programın verimli bir şekilde çalıştırılmasından ziyade, bir program modifikasyonunun hızlı bir şekilde test edilebilmesidir.

Derleyici ve tercüman arasındaki temel farklar

Derleyici ve tercüman arasındaki büyük farklılıklara bakalım.

  1. Derleyici bir programı bir bütün olarak alır ve çevirir, ancak tercüman bir program deyimini ifadeye göre çevirir.
  2. Derleyici olması durumunda ara kod veya hedef kod oluşturulur. Tercümana karşı, ara kod oluşturmaz.
  3. Bir derleyici, derleyici tüm programı bir seferde alırken, bir tercüman diğer kod satırlarını derlerken derleyici Tercüman'dan daha hızlıdır.
  4. Derleyici, nesne kodu üretimi nedeniyle tercümandan daha fazla bellek gerektirir.
  5. Derleyici tüm hataları eşzamanlı olarak sunar ve karşıt tercüman görüntüleyicideki hataları tek tek sıralamak zordur ve hataları tespit etmek kolaydır.
  6. Programda bir hata oluştuğunda derleyicide çevirisini durdurur ve hata giderildikten sonra tüm program tekrar çevrilir. Aksine, tercümanda bir hata meydana geldiğinde, çevirisini engeller ve hatayı giderdikten sonra çeviri devam eder.
  7. Bir derleyicide, işlem ilk önce kaynak kodun hedef programa çevrilmesi ve ardından yürütülmesi için iki adım gerektirir. Tercümandayken Kaynak kodun aynı anda derlenip çalıştırıldığı tek adımlı bir işlemdir.
  8. Derleyici, C, C ++, C #, Scala, vb. Gibi programlama dillerinde kullanılır. Diğer tercüman üzerinde Java, PHP, Ruby, Python, vb. Gibi dillerde kullanılır.

Sonuç

Derleyici ve tercümanın her ikisi de aynı işi yapmayı amaçlamaktadır ancak işletim prosedüründe farklıdır, Derleyici kaynak kodunu toplu bir şekilde alırken, Tercüman kaynak kodunu oluşturan parçaları, yani ifadenin ifadesini alır.

Hem derleyici hem de tercümanın Tercüman dilleri gibi bazı avantaj ve dezavantajları olmasına rağmen, çapraz platform olarak kabul edilir, yani kod taşınabilirdir. Ayrıca, daha önce zaman kazandıran derleyiciden farklı olarak bir talimat derlemesi de gerekmez. Derlenmiş diller, derleme işleminde daha hızlıdır.

Top