# Derleyici

Adres: https://softwaredictionary.org/tr/terimler/compiler
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-09-30
İngilizcesi: Compiler
Okunuşu: kımpaylır

Kısaca: Derleyici, bir programlama dilinde yazılmış kaynak kodu, bilgisayarın çalıştırabileceği makine kodu gibi daha alt seviyeli bir biçime çeviren programdır.

## Derleyici nedir?

Derleyici, yazdığınız insan tarafından okunabilir kodu bilgisayarın yürütebileceği talimatlara dönüştürür. C, C++, Go ve Rust gibi dillerde derleyici, belirli bir işlemci için makine kodu üretir ve bunu bir çalıştırılabilir dosya olarak paketler. Java ve C# gibi diller için olanlar gibi diğer derleyiciler ise bir sanal makinenin sonradan çalıştırdığı, bytecode adlı bir ara biçim üretir.

Derleme aşamalar hâlinde gerçekleşir. Derleyici önce kaynak kodu okur ve onu token'lara ayırır, ardından bu token'ları programın yapısını temsil eden bir ağaca çözümler (parse), tür uyuşmazlığı gibi hatalara karşı denetler, en iyileştirir ve son olarak çıktı kodunu üretir. Bunların hepsi program çalışmadan önce gerçekleştiği için birçok hata, bir kullanıcı görmeden çok önce, derleme zamanında yakalanır.

Derleyici, bir kitabın tamamını yayımlanmadan önce başka bir dile çeviren bir çevirmene benzer; böylece okurlar bitmiş bir çeviri alır. Yorumlayıcı (interpreter) ise bir konuşmayı yapılırken cümle cümle çeviren bir sözlü çevirmen gibidir. Python ve JavaScript gibi diller geleneksel olarak yorumlanır, ancak V8 gibi modern motorlar, program çalışırken sık çalışan kodu makine koduna dönüştürmek için tam zamanında (JIT) derleme kullanır.

Derleyiciler ile yorumlayıcılar arasındaki çizgi pratikte bulanıktır, çünkü birçok dil ikisini de kullanır. İlgili bir terim olan transpiler, benzer düzeyde diller arasında çeviri yapan bir derleyicidir; TypeScript'i JavaScript'e dönüştüren TypeScript derleyicisi (`tsc`) buna örnektir. Derleme zamanı hataları çalışma zamanı hatalarından da farklıdır: ilki programın oluşturulmasını engeller, ikincisi ise program çalışırken ortaya çıkar.

## Önemli noktalar

- Derleyici, kaynak kodu makine koduna, bytecode'a ya da başka bir dile çevirir.
- Aşamalar hâlinde çalışır: token'lara ayırma, çözümleme, denetleme, en iyileme ve kod üretme.
- Derleme zamanı hataları, program hiç çalışmadan önce yakalanır.
- Yorumlayıcı ise kodu önceden tamamen çevirmek yerine doğrudan çalıştırır.
- TypeScript derleyicisi gibi bir transpiler, benzer üst seviyeli diller arasında kod dönüştürür.

## Örnek: Programları komut satırından derlemek

```bash
# Compile a C program into a native executable, then run it
gcc hello.c -o hello
./hello

# Compile Java source into bytecode for the Java Virtual Machine
javac Hello.java
java Hello

# Transpile TypeScript into JavaScript, then run it with Node.js
npx tsc app.ts
node app.js
```

## Sık sorulan sorular

**Derleyici ile yorumlayıcı arasındaki fark nedir?**

Derleyici, tüm programı önceden, genellikle makine koduna olmak üzere başka bir biçime çevirir ve bu kod sonra çalışır. Yorumlayıcı ise program çalışırken kaynak kodu doğrudan okur ve yürütür; birçok modern dil her iki yaklaşımı da birleştirir.

**JavaScript derlenen bir dil mi, yorumlanan bir dil mi?**

İkisi de. JavaScript çoğunlukla yorumlanan bir dil olarak tanımlanır, ancak Chrome ve Node.js'te kullanılan V8 gibi modern motorlar bir yorumlayıcıyla başlar, ardından sık kullanılan kodu anında en iyilenmiş makine koduna derler; buna tam zamanında (just-in-time) derleme denir.

**Transpiler nedir?**

Transpiler ya da kaynaktan kaynağa derleyici, kodu bir üst seviyeli dilden diğerine, örneğin TypeScript'ten JavaScript'e çevirir. Babel gibi araçlar da modern JavaScript'i uyumluluk için eski sözdizimine dönüştürmek amacıyla transpile kullanır.

---

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