Compiler (derleyici), yüksek seviyeli programlama dillerinde yazılmış kaynak kodunu, makine diline veya ara kod (intermediate code) gibi başka bir forma dönüştüren bir yazılım aracıdır. Derleyiciler, programların bilgisayar tarafından anlaşılabilir hale gelmesini sağlar.
Bir kodun derlenme aşamasından sonra ortaya çıkan .o uzantılı object dosyası ilgili kütüphaneler ile bağlanabilmesi adında linker aşamasına geçiş yapılır. Linker kütüphaneleri ve nesne dosyalarını bir araya getirerek tek bir çalıştırılabilir dosya (örneğin, .exe, .out, .bin) oluşturur.
Kaynak Kod Analizi: Derleyici, kaynak kodunu alır ve sözdizimsel (syntax) ve anlamsal (semantic) hataları kontrol eder. Bu aşamada, kodun doğru bir şekilde yazılıp yazılmadığı belirlenir.
Sözdizimsel Ağaç Oluşturma: Derleyici, kaynak kodunu bir soyut sözdizimsel ağaç (abstract syntax tree - AST) yapısına dönüştürür. Bu ağaç, kodun yapısını ve ilişkilerini temsil eder.
Optimizasyon: Derleyici, kodun performansını artırmak için çeşitli optimizasyon teknikleri uygular. Bu aşama, daha verimli bir makine kodu üretmek için gereksiz işlemleri kaldırmayı veya kodu yeniden düzenlemeyi içerir.
Kod Üretimi: Derleyici, optimize edilmiş soyut sözdizimsel ağaçtan makine kodu veya ara kod üretir. Bu kod, hedef platformda çalıştırılabilir. Bu şekilde ilgili sistemin sahip olduğu peripheral ve bellek için uygun şekilde optimize edilir.
Hata Raporlama: Derleyici, kaynak kodunda bulunan hataları ve uyarıları geliştiriciye bildirir, böylece hataların düzeltilmesi sağlanır.