# Yorumlayıcı

Adres: https://softwaredictionary.org/tr/terimler/interpreter
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-09-30
İngilizcesi: Interpreter
Okunuşu: intörpritır

Kısaca: Yorumlayıcı, tüm programı önce ayrı bir çalıştırılabilir dosyaya çevirmek yerine kaynak kodu doğrudan, adım adım çalıştıran bir programdır.

## Yorumlayıcı (interpreter) nedir?

Yorumlayıcı, önce bağımsız bir çalıştırılabilir dosya üretmek yerine bir programı kodunu okuyarak ve her talimatı ilerledikçe yerine getirerek yürütür. Ona bir betik verirsiniz ve hemen çalışmaya başlar. Python, Ruby, PHP, JavaScript ve Bash gibi kabuk dilleri genellikle yorumlayıcılarla çalıştırılır; bu yüzden onlara sıklıkla yorumlanan diller denir.

Modern yorumlayıcıların çok azı ham kaynak metnini satır satır çalıştırır. Çoğu önce kodu bir ağaca çözümler ve birçoğu ardından onu, yorumlayıcının ana döngüsünün yürüttüğü, bir sanal makine için kompakt bir talimat kümesi olan bytecode'a derler. CPython bu şekilde çalışır ve V8 gibi JavaScript motorları, sık çalışan kodu program çalışırken yerel makine koduna dönüştüren tam zamanında (JIT) derlemeyle daha da ileri gider. Birçok yorumlayıcı ayrıca bir satır yazıp sonucu hemen gördüğünüz etkileşimli bir istem olan REPL'i (read-eval-print loop) sunar.

Yorumlayıcı, bir konferansta konuşmayı yapılırken cümle cümle çeviren bir sözlü çevirmen gibidir; derleyici ise bir kitabın tamamını yayımlanmadan önce çeviren bir çevirmen gibidir. Yorumlama, düzenle-ve-çalıştır döngüsünü hızlı kılar ve aynı betiğin yorumlayıcının kurulu olduğu her makinede çalışmasını sağlar; bedeli ise daha yavaş yürütme ve yalnızca hatalı satır gerçekten çalıştığında ortaya çıkan hatalardır.

Yorumlayıcı ile derleyici bir uygulamayı tanımlar, bir dili değil. Aynı dil her iki yolla da ele alınabilir: Java, JVM'in sonra yorumladığı ve JIT ile derlediği bytecode'a derlenir ve Python'ın hem CPython yorumlayıcısı hem de önceden (ahead-of-time) derleyicileri vardır. Dolayısıyla “yorumlanan dil”, katı bir kural değil, bir dilin genellikle nasıl çalıştırıldığının kısaltmasıdır.

## Önemli noktalar

- Yorumlayıcı, önce ayrı bir çalıştırılabilir dosya üretmeden kodu doğrudan çalıştırır.
- Çoğu yorumlayıcı kodu çözümler ve ham metin yerine bir sanal makinede bytecode çalıştırır.
- Yorumlayıcı içindeki JIT derlemesi, sık çalışan kodu çalışma zamanında hızlı makine koduna dönüştürür.
- Yorumlanan kodu değiştirmek ve test etmek hızlıdır, ancak genellikle derlenmiş koddan daha yavaş çalışır.
- Derlenmiş ya da yorumlanmış olmak bir uygulamayı tanımlar, dilin kendisini değil.

## Örnek: Python'da küçük bir yığın tabanlı yorumlayıcı

```python
# Read each instruction and carry it out immediately
program = ["push 2", "push 3", "add", "print"]
stack = []

for line in program:
    op, *args = line.split()
    if op == "push":
        stack.append(int(args[0]))
    elif op == "add":
        stack.append(stack.pop() + stack.pop())
    elif op == "print":
        print(stack[-1])  # 5
```

## Sık sorulan sorular

**Yorumlayıcı ile derleyici arasındaki fark nedir?**

Derleyici, tüm programı önceden makine koduna gibi başka bir biçime çevirir ve sonucu daha sonra çalıştırırsınız. Yorumlayıcı ise programı çevirerek doğrudan yürütür; bu yüzden ayrı bir derleme adımı yoktur.

**Python yorumlanan bir dil midir?**

Standart uygulama olan CPython, kaynak kodu bytecode'a derler ve ardından bu bytecode'u bir sanal makinede yorumlar. Bir geliştirici açısından yorumlanan bir dil gibi davranır, çünkü `.py` dosyasını doğrudan çalıştırırsınız.

**REPL nedir?**

REPL, yani read-eval-print loop, birçok yorumlayıcının sunduğu etkileşimli bir istemdir. Bir ifadeyi okur, değerlendirir, sonucu yazdırır ve bir sonrakini bekler; bu da denemeler yapmak için kullanışlıdır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
