Derleyici geliştirmek için hangi bileşenler gerekir

Derleyici geliştirmek için tipik olarak bir “ön yüz”, “orta katman” ve “arka yüz”ten oluşan bir mimari ve bunların içindeki alt bileşenler gerekir. geeksforgeeks

Ön yüz (Front‑end) bileşenleri

  • Lexical analyzer (lexer / scanner): Kaynak kodu karakter karakter okuyup anahtar kelime, tanımlayıcı, sayı, operatör gibi token’lara dönüştürür. geeksforgeeks
  • Syntax analyzer (parser): Token dizisinin gramer kurallarına uyup uymadığını kontrol eder ve parse tree veya AST (Abstract Syntax Tree) üretir. geeksforgeeks
  • Semantic analyzer: AST üzerinde tip kontrolü, kapsam (scope) kontrolü, bildirilmemiş değişkenler, uygun dönüş tipleri gibi anlamsal kontroller yapar ve sembol tablosunu kullanır. ai-futureschool
  • Symbol table: Değişken, fonksiyon, sınıf vb. tanımları ve bunların tip, kapsam gibi bilgilerini tutan merkezi veri yapısıdır. geeksforgeeks

Orta katman (Middle‑end) bileşenleri

  • Intermediate Representation (IR) üreticisi: AST’yi üç adresli kod veya benzeri makine-bağımsız ara temsile çevirir. geeksforgeeks
  • Optimizasyon geçişleri: IR üzerinde ölü kod elimini, ortak alt ifade yok etme, döngü iyileştirmeleri gibi performans ve bazen boyut odaklı optimizasyonlar yapar. geeksforgeeks

Arka yüz (Back‑end) bileşenleri

  • Code generator: IR’yi hedef makine dili veya bytecode’a dönüştürür; talimat seçimi, adresleme kipleri ve kod sıralamasını belirler. meegle
  • Register allocator ve düşük seviye optimizasyonlar: Sanal register’ları fiziksel register’lara eşler, gereksiz hafıza erişimlerini azaltır ve mimariye özgü ince optimizasyonlar uygular. geeksforgeeks
  • Assembler / linker entegrasyonu: Üretilen makine kodunu çalıştırılabilir dosyaya dönüştürmek için assembler ve bağlayıcı ile etkileşime girer veya bunların görevini üstlenir. en.wikipedia

Destek bileşenleri

  • Hata raporlama ve toparlanma: Her aşamada sözdizimsel ve anlamsal hataları konum bilgisiyle rapor eden ve mümkünse derlemeye devam edebilen altyapı. geeksforgeeks
  • Build/test altyapısı: Derleyicinin kendisi için birim testleri, regresyon testleri ve örnek programlar üzerinde otomatik test çalıştıran sistemler. dev