Derleyici Tasarımı Nedir? Türler, İnşaat Aletleri, Örnek
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ılan 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 anlamsal analizden, arka uçta ise kod oluşturma 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ır
- İyi hata raporlama/işleme
- Kod hata ayıklama yardımı
Derleyici Türleri
Aşağıda farklı Derleyici türleri listelenmiştir:
- Tek Geçişli Derleyiciler
- İki Geçişli Derleyiciler
- Ç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ılır:
- Başlangıç aşaması: Yasal kodu Orta Temsilciliğe (IR) eşler.
- Arka uç: IR'yi hedef makineye eşler
İki geçişli derleyici yöntemi aynı zamanda yeniden hedefleme sürecini de basitleştirir. Ayrıca birden fazla ön uca izin verir.
Çok Geçişli Derleyiciler
Çok geçişli derleyici, bir programın kaynak kodunu veya sözdizimi ağacını birkaç kez işler. Büyük bir programı birden fazla küçük programa böler ve bunları işler. Birden fazla ara kod geliştirir. Bu çoklu geçişlerin tümü bir önceki fazın çıkışını giriş olarak alır. Bu nedenle daha az hafıza gerektirir. '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 istediğiniz 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
- Programın tamamını okuyun, analiz edin ve anlamsal olarak eşdeğer bir dile çevirin
- Makine tipine bağlı olarak kaynak kodunun nesne koduna çevrilmesi
Derleyicinin Tarihçesi
Derleyici tarihinin Önemli Dönüm Noktası aşağıdaki gibidir:
- Derleyici kelimesi ilk kez 1950'lerin başında Grace Murray Hopper tarafından kullanıldı.
- İlk derleyici John Backum ve grubu tarafından 1954 ile 1957 yılları arasında oluşturuldu. IBM.
- COBOL ilk oldu Programlama dili 1960 yılında birden fazla platformda derlenen
- Tam bir çözüm sağlamak için tarama ve ayrıştırma konularına ilişkin çalışmalar 1960'larda ve 1970'lerde sürdürüldü.
Dil işleme sistemleri için adımlar
Derleyici kavramını öğrenmeden önce, derleyicilerle çalışan birkaç aracı anlamanız gerekir.
- Preprocessor: Ö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 genişletme vb. ile ilgilenir.
- Çevirmen: Bir tercüman, yüksek seviyeli dili düşük seviyeli makine diline çeviren Derleyici gibidir. Her ikisi arasındaki temel fark, yorumlayıcının kodu satır satır okuyup dönüştürmesidir. Derleyici kodun tamamını bir kerede okur ve makine kodunu oluşturur.
- montajcı: Assembly dili kodunu makinenin anlayabileceği dile çevirir. Birleştiricinin çıktı sonucu, makine talimatlarının yanı sıra bu talimatları hafızada saklamak için gereken verilerin bir kombinasyonu olan bir nesne dosyası olarak bilinir.
- bağlantılar: 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. Bağlayıcının ana görevi, bir programda çağrılan modülleri aramak ve tüm modüllerin depolandığı hafıza konumunu bulmaktır.
- Loder: Yükleyici, çalıştırılabilir dosyaları belleğe yükleme ve çalıştırma görevlerini gerçekleştiren işletim sisteminin bir parçasıdır. Ayrıca ek bellek alanı oluşturan programın boyutunu da hesaplar.
- Çapraz derleyici: Derleyici tasarımındaki Ç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 kodunun başka bir dilin kaynağına çevrilmesi durumunda kullanılan bir terimdir.
Derleyici İnşaat Araçları
Derleyici yapı araçları, bilgisayar ile ilgili teknolojilerin tüm dünyaya yayılmasıyla ortaya çıkmıştır. Bunlara derleyici-derleyiciler, derleyici-üreticiler veya çevirici de denir.
Bu araçlar derleyicinin bileşenini belirtmek ve uygulamak için belirli bir dil veya algoritma kullanır. Aşağıda derleyici oluşturma araçlarının örnekleri verilmiştir.
- Tarayıcı jeneratörleri: Bu araç düzenli ifadeleri girdi olarak alır. Örneğin Unix için LEX Operating Sistemi.
- Sözdizimine yönelik çeviri motorları: Bunlar yazılım araçları ayrıştırma ağacını kullanarak bir ara kod sunun. Ayrıştırma ağacının her düğümüyle bir veya daha fazla çeviriyi ilişkilendirme hedefi vardır.
- Ayrıştırıcı üreteçleri: Bir ayrıştırıcı üreteci, girdi olarak bir dilbilgisi alır ve bir dilbilgisinin yardımıyla karakter akışlarını ayrıştırabilen kaynak kodunu otomatik olarak üretir.
- Otomatik kod üreteçleri: Ara kodu alır ve 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 karşılaştırılarak herhangi bir ilişki analiz edilir. Veri akışı analizi olarak da bilinir. Değerlerin programın bir kısmından diğer kısmına nasıl aktarıldığını bulmanıza yardımcı olur.
Neden bir Derleyici kullanmalısınız?
- Derleyici programın tamamını doğrular, dolayısıyla hiçbir sözdizimi veya anlamsal hata olmaz.
- Yürütülebilir dosya derleyici tarafından optimize edilir, böylece daha hızlı yürütülür.
- Bellekte iç yapı oluşturmanıza olanak sağlar.
- Programı oluşturulduğu makinede çalıştırmaya gerek yoktur.
- Programın tamamını başka bir dile çevirin.
- Diskte dosyalar oluşturun.
- Dosyaları yürütülebilir bir formata bağlayın.
- Sözdizimi hatalarını ve veri türlerini kontrol edin.
- Dil anlambilimi anlayışınızı geliştirmenize yardımcı olur.
- Dil performansı sorunlarının çözülmesine yardımcı olur.
- Önemsiz olmayan bir programlama projesi için fırsat.
- Derleyici oluşturmak için kullanılan teknikler başka amaçlar için de yararlı olabilir.
Derleyicilerin Uygulaması
- Derleyici tasarımı, Yüksek Düzey Programlama Dillerinin tam olarak uygulanmasına yardımcı olur.
- Bilgisayar için destek optimizasyonu ArchiParalellik.
- Makinelerin Yeni Bellek Hiyerarşilerinin Tasarımı.
- Program Çevirisi için yaygın olarak kullanılır.
- Diğer Yazılım Üretkenlik 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 kez 1950'lerin başında Grace Murray Hopper tarafından kullanıldı.
- Dil işleme sisteminin adımları şunlardır: Önişlemci, Yorumlayıcı, Birleştirici, Bağlayıcı/Yükleyici.
- Önemli derleyici oluşturma araçları şunlardır: 1) Tarayıcı üreteçleri, 2) Sözdizimi-3) yönlendirilmiş çeviri motorları, 4) Ayrıştırıcı üreteçleri, 5) Otomatik kod üreteçleri.
- Derleyicinin ana görevi programın tamamını doğrulamaktır, böylece sözdizimi veya anlamsal hatalar olmaz.