Derleyici Tasarımı

Derleyici nedir?

Derleyici, yüksek seviyeli bir dilde yazılmış kaynak kodunu düşük seviyeli makine diline dönüştürmenize yardımcı olan bir bilgisayar programıdır. Bir programlama dilinde yazılmış kodu, kodun anlamını değiştirmeden başka bir dile çevirir. Derleyici ayrıca, yürütme süresi ve bellek alanı için optimize edilmiş son kodu verimli hale getirir.

Derleme süreci, temel çeviri mekanizmalarını ve hata tespitini içerir. Derleyici süreci, ön uçta sözcüksel, sözdizimi ve anlambilimsel analizden ve arka uçta kod üretme ve optimizasyondan geçer.

Derleyicilerin Özellikleri

  • Doğruluk
  • Derleme hızı
  • Kodun doğru anlamını koruyun
  • Hedef kodun hızı
  • Yasal ve yasa dışı program yapılarını tanımak
  • İyi hata raporlama / işleme
  • Kod hata ayıklama yardımı

Derleyici Türleri

  • Tek Geçişli Derleyiciler
  • İki Geçiş Derleyicileri
  • Çok Geçişli Derleyiciler

Tek Geçişli Derleyici

Tek geçişte Derleyici kaynak kodu doğrudan makine koduna dönüşür. Örneğin, Pascal dili.

İki Geçişli Derleyici

İki geçişli Derleyici iki bölüme ayrılmıştır, yani.

  1. Ön uç: Yasal kodu Ara Temsilciliğe (IR) eşler.
  2. Arka uç: IR’yi hedef makineye eşler

İki geçişli derleyici yöntemi, yeniden hedefleme sürecini de basitleştirir. Ayrıca birden fazla ön uca izin verir.

Çok Geçişli Derleyiciler

Çok kanallı derleyici, bir programın kaynak kodunu veya sözdizimi ağacını birkaç kez işler. Büyük bir programı birden çok küçük programa böldü ve işledi. Birden çok ara kod geliştirir. Tüm bu çoklu geçiş, önceki aşamanın çıkışını bir girdi olarak alır. Bu yüzden daha az hafıza gerektirir. Aynı zamanda ‘Geniş Derleyici’ olarak da bilinir.

Derleyicinin Görevleri

Derleyici tarafından gerçekleştirilen ana görevler şunlardır:

  • Kaynak programı parçalara ayırır ve onlara gramer yapısını empoze eder
  • Ara gösterimden istenen hedef programı oluşturmanıza ve ayrıca sembol tablosunu oluşturmanıza olanak sağlar
  • Kaynak kodunu derler ve içindeki hataları tespit eder
  • Tüm değişkenlerin ve kodların depolanmasını yönetin.
  • Ayrı derleme desteği
  • Tüm programı okuyun, analiz edin ve anlamsal olarak eşdeğerine çevirin
  • Makinenin türüne bağlı olarak kaynak kodu nesne koduna çevirme

Dil işleme sistemleri için adımlar

Derleyici kavramını bilmeden önce, derleyicilerle çalışan birkaç başka aracı anlamanız gerekir.

  • Önişlemci : Önişlemci, Derleyicinin bir parçası olarak kabul edilir. Derleyici için girdi üreten bir araçtır. Makro işleme, büyütme, dil uzantısı vb. İle ilgilenir.
  • Yorumlayıcı : Bir yorumlayıcı, yüksek seviyeli dili düşük seviyeli makine diline çeviren Derleyici gibidir. İkisi arasındaki temel fark, yorumlayıcının kodu satır satır okuyup dönüştürmesidir. Derleyici, tüm kodu bir defada okur ve makine kodunu oluşturur.
  • Assembler : Assembly dili kodunu makinenin anlaşılabilir diline çevirir. Birleştiricinin çıktı sonucu, makine talimatının yanı sıra bu talimatları bellekte saklamak için gereken verilerin bir kombinasyonu olan bir nesne dosyası olarak bilinir.
  • Bağlayıcı : Bağlayıcı , yürütülebilir bir dosya oluşturmak için çeşitli nesne dosyalarını bağlamanıza ve birleştirmenize yardımcı olur. Tüm bu dosyalar ayrı derleyicilerle derlenmiş olabilir. Bir bağlayıcının ana görevi, bir programda çağrılan modülleri aramak ve tüm modüllerin depolandığı bellek konumunu bulmaktır.
  • Yükleyici : Yükleyici , çalıştırılabilir dosyaları belleğe yükleme ve çalıştırma görevlerini yerine getiren işletim sisteminin bir parçasıdır. Ayrıca ek bellek alanı yaratan bir programın boyutunu da hesaplar.
  • Çapraz derleyici : Çapraz derleyici, çalıştırılabilir kod oluşturmanıza yardımcı olan bir platformdur.
  • Kaynaktan kaynağa Derleyici : Kaynaktan kaynağa derleyici, bir programlama dilinin kaynak kodu başka bir dilin kaynağına çevrildiğinde kullanılan bir terimdir.

Derleyici İnşaat Araçları

Derleyici oluşturma araçları, tüm dünyaya yayılmış bilgisayarla ilgili teknolojiler olarak tanıtıldı. Derleyici-derleyici, derleyici-oluşturucu veya çevirmen olarak da bilinirler.

Bu araçlar, derleyicinin bileşenini belirlemek ve uygulamak için belirli bir dil veya algoritma kullanır.

  • Tarayıcı üreteçleri : Bu araç, girdi olarak normal ifadeleri alır. Örneğin Unix İşletim Sistemi için LEX.
  • Sözdizimine yönelik çeviri motorları : Bu yazılım araçları, ayrıştırma ağacını kullanarak bir ara kod sunar. Ayrıştırma ağacının her düğümü ile bir veya daha fazla çeviriyi ilişkilendirme hedefi vardır.
  • Ayrıştırıcı üreteçleri: Ayrıştırıcı oluşturucu, girdi olarak bir dilbilgisini alır ve bir dilbilgisi yardımıyla karakter akışlarını ayrıştırabilen kaynak kodunu otomatik olarak üretir.
  • Otomatik kod üreteçleri : Ara kodu alır ve bunları Makine Diline dönüştürür
  • Veri akışı motorları : Bu araç, kod optimizasyonu için faydalıdır. Burada bilgi kullanıcı tarafından sağlanır ve ara kod herhangi bir ilişkiyi analiz etmek için karşılaştırılır. Veri akışı analizi olarak da bilinir. Değerlerin programın bir bölümünden diğerine nasıl iletildiğini öğrenmenize yardımcı olur.

Neden bir Derleyici kullanmalı?

  • Derleyici tüm programı doğrular, bu nedenle sözdizimi veya anlamsal hata olmaz
  • Yürütülebilir dosya, derleyici tarafından optimize edilir, bu nedenle daha hızlı yürütülür
  • Hafızada iç yapı oluşturmanıza izin verir
  • Programın kurulduğu makinede çalıştırılmasına gerek yoktur.
  • Tüm programı başka bir dile çevirin
  • Diskte dosyalar oluşturun
  • Dosyaları çalıştırılabilir bir biçime bağlayın
  • Sözdizimi hatalarını ve veri türlerini kontrol edin
  • Dilin anlam bilimi anlayışınızı geliştirmenize yardımcı olur
  • Dil performansı sorunlarının üstesinden gelmeye yardımcı olur
  • Önemsiz olmayan bir programlama projesi için fırsat
  • Bir derleyici oluşturmak için kullanılan teknikler başka amaçlar için de yararlı olabilir.

Derleyicilerin Uygulaması

  • Derleyici tasarımı, Üst Düzey Programlama Dillerinin tam olarak uygulanmasına yardımcı olur
  • Bilgisayar Mimarisi Paralelliği için destek optimizasyonu
  • Makinelerin Yeni Bellek Hiyerarşilerinin Tasarımı
  • Çeviri Programları için yaygın olarak kullanılır
  • Diğer Yazılım Üretkenliği Araçlarıyla birlikte kullanılır

Özet

  • Derleyici, yüksek seviyeli bir dilde yazılmış kaynak kodunu düşük seviyeli makine diline dönüştürmenize yardımcı olan bir bilgisayar programıdır.
  • Doğruluk, derleme hızı, kodun doğru anlamını korumak derleyici tasarımının bazı önemli özellikleridir.
  • Derleyiciler üç bölüme ayrılır 1) Tek Geçişli Derleyiciler 2) İki Geçişli Derleyiciler ve 3) Çok Geçişli Derleyiciler
  • “Derleyici” kelimesi ilk olarak 1950’lerin başında Grace Murray Hopper tarafından kullanılmıştır.
  • Dil işleme sistemi için adımlar şunlardır: Önişlemci, Yorumlayıcı, Birleştirici, Bağlayıcı / Yükleyici
  • Önemli derleyici oluşturma araçları 1) Tarayıcı oluşturucular, 2) Sözdizimi-3) yönlendirilmiş çeviri motorları, 4) Ayrıştırıcı oluşturucular, 5) Otomatik kod oluşturuculardır.
  • Derleyicinin ana görevi, tüm programı doğrulamaktır, böylece sözdizimi veya anlamsal hata olmaz.