derleyici

Derleyici, kaynak kodunu belirli bir merkezi işlem birimi (CPU) tarafından anlaşılması için nesne koduna çeviren bir programdır. Kaynak kodu nesne koduna çevirme eylemi derleme olarak bilinir. Derleme genellikle, yürütülebilir bir program oluşturmak için kaynak kodunu yüksek düzeyli bir programlama dilinden (C ++ gibi) düşük düzeyli bir programlama diline (makine kodu gibi) çeviren programlar için kullanılır. Aynı şekilde, düşük seviyeli bir dil, yüksek seviyeli bir dile dönüştürüldüğünde, işleme decompilation denir.

Derleyicinin aşamaları

Bir derleyici, verimli tasarımı desteklemek ve kaynak girdisinin hedef çıktıya doğru dönüşümünü desteklemek için süreçlerini aşamalı olarak yürütür. Aşamalar aşağıdaki gibidir:

1. Sözcüksel Analizör

Tarayıcı olarak da adlandırılır. Derleyici, kaynak kodda görünen karakter dizisini, belirteç olarak bilinen bir dizi karakter dizisine dönüştürür. Bu simgeler, sözcük analizcisi tarafından anlaşılan normal ifadelerle tanımlanır. Ayrıca sözcük hatalarını, yorumları ve boşlukları da kaldırır.

2. Sözdizimi Çözümleyicisi

Sözdizimi çözümleyicisi, verilen gramerdeki belirsizliği kontrol etmek için oluşturulan ayrıştırma ağacını oluşturur. Sözdizimi çözümleyicisi tüm simgeleri birer birer alır ve ayrıştırma ağacını oluşturmak için Bağlamdan Bağımsız Dilbilgisini kullanır. Girdi dilbilgisine uygun değilse sözdizimi hatası tespit edilebilir.

3. Anlamsal Analiz

Anlamsal çözümleyici, sözdizimi çözümleyicisi tarafından oluşturulan ayrıştırma ağacını doğrular. Aynı zamanda tip kontrolü, etiket kontrolü ve akış kontrolü kontrolü yapar.

4. Ara Kod Oluşturucu

Ara kod üreteci, bir makine tarafından yürütülmesi için ara kod üretir. Ara kod, platforma bağlı olan son iki aşama kullanılarak makine diline dönüştürülür.

5. Kod İyileştirici

Kod iyileştirici, kodu daha az kaynak tüketecek ve daha fazla hız üretecek şekilde dönüştürür. Dönüştürülen kodun anlamı değiştirilmez.

6. Hedef Kod Oluşturucu

Bu, derlemenin son aşamasındaki son adımdır. Hedef kod üreteci, bir makinenin anlayabileceği kodu yazar ve ayrıca tahsis, talimat ve seçimi kaydeder. Çıktı, assembler tipine bağlıdır. Optimize edilmiş kod daha sonra makine koduna dönüştürülerek bağlayıcıya ve yükleyiciye girdi oluşturulur.

Derleyici türleri

Birçok derleyici türü vardır, örneğin:

  • Çapraz derleyici: Derlenen program, derleyicinin çalıştığından farklı bir işletim sistemine veya CPU'ya sahip bir bilgisayarda çalışır. Derleyicinin çalıştığı platformdan farklı bir platform için kod oluşturabilir
  • Kaynaktan kaynağa derleyici: Transcompiler olarak da bilinir, bir programlama dilinde yazılmış kaynak kodunu başka bir programlama dilinin kaynak koduna çevirir.
  • Tam zamanında (JIT) derleyici: Çalışma zamanına kadar derlemeyi erteleyen bir derleyici. Bu derleyici Python ve JavaScript gibi diller için kullanılır ve genellikle bir yorumlayıcı içinde çalışır.