Derleyici ve Yorumlayıcılar

Yarenevin
2 min readFeb 27, 2024

--

Derleyici ve Yorumlayıcılar: Tanım ve İşlevsellik

Derleyici:

  • Derleyiciler, kaynak kodunu bir bütün olarak alır ve onu makine diline çevirir.
  • Bu çeviri genellikle bir aşamada gerçekleşir ve sonuç, yürütülebilir bir dosyadır.
  • Derleyici, tüm kodu derler ve hataların çoğunu derleme zamanında bulur. Yürütme sırasında hatalar nadirdir.

Yorumlayıcı:

  • Yorumlayıcılar, kaynak kodunu satır satır okur ve her satırı yürütür.
  • Yorumlayıcılar, kodu çalışma zamanında çevirir ve işler. Bu nedenle, her satır kod yürütülmeden önce çevrilir.
  • Yorumlayıcılar, kodun hata ayıklanmasını ve yürütme sırasında dinamik olarak değişen değerlerin izlenmesini kolaylaştırır.

Süreç

Derleme Süreci:

  1. Lejik Analiz (Tokenization): Kaynak kod parçacıkları (token’lar) oluşturulur. Örneğin, değişkenler, anahtar kelimeler, operatörler vs.
  2. Ayrıştırma (Parsing): Token’lar, dilin sözdizimi kurallarına göre analiz edilir ve dilbilgisi ağacı (parse tree) oluşturulur.
  3. Anlamsal Analiz (Semantic Analysis): Dilbilgisi ağacı, semantik kurallara göre analiz edilir. Değişken türleri kontrol edilir, fonksiyon çağrıları doğrulanır vb.
  4. Optimizasyon (Optimization): Oluşturulan ara kod, optimize edilir. Bu adım, derlenen kodun daha hızlı veya daha az bellek kullanması için yapılan değişiklikleri içerir.
  5. Kod Üretimi (Code Generation): Derleyici, optimize edilmiş ara kodu makine koduna çevirir.

Yorumlama Süreci:

  1. Satır Satır Yorumlama: Kaynak kod satır satır okunur ve her bir satır yürütülür.
  2. Anında Çeviri ve Yürütme: Her satır, yorumlayıcı tarafından anında çevrilir ve yürütülür.
  3. Hata Ayıklama ve İzleme: Çünkü kod, çalışma zamanında yürütülür, hata ayıklama süreci daha dinamiktir ve değişken değerlerinin izlenmesi daha kolaydır.

Avantajlar ve Dezavantajlar

Derleyicilerin Avantajları:

  • Genellikle daha hızlıdır, çünkü tüm kodu derler ve yürütülebilir dosyayı oluşturur.
  • Derlenmiş kod, yürütme sırasında daha verimlidir.

Derleyicilerin Dezavantajları:

  • Derleme süreci daha uzun sürebilir.
  • Hata ayıklama ve kod değişiklikleri zaman alabilir.

Yorumlayıcıların Avantajları:

  • Hızlı geliştirme ve hata ayıklama imkanı sağlar.
  • Kodun dinamik olarak değişen çevreye uyum sağlamasını sağlar.

Yorumlayıcıların Dezavantajları:

  • Genellikle daha yavaştır, çünkü kodu yürütme sırasında çevirirler.
  • Optimizasyon seviyesi derleyicilere kıyasla daha düşüktür.

--

--