İnterpreter, Assember ve Compiler Nedir?
Programlama Dil Dönüştürücüleri: Yeni kodlanmış programların çalıştırılacakları teknolojik cihazda uygun forma dönüşmelerini sağlayan programlardır. Yazılımların çalıştırıldığı teknolojik cihazlarda genellikle üç farklı çeşit dil dönüştürücüsü bulunur. Bu dönüştürücüler şunlardır:
✅ İnterpreter (Yorumlayıcı)
✅ Compiler (Derleyici)
✅ Assembler (Dönüştürücü)
Bu yazıda sırasıyla interpreter nedir, compiler nedir, assembler nedir sorularının cevaplarını verecek, bunlar arasındaki farklardan ve yeni kodlanan bir programın derlenme ve çalıştırılma sürecinden bahsedeceğiz.
Programlamada Dil Dönüştürücüler
1- Yorumlayıcı (İnterpreter) Nedir?
Yorumlayıcı (Interpreter) Nedir: Bir kaynak kodu derleyici ile hedef koda çevrildikten sonra satır satır kodu incelemek suretiyle koddaki hataları yakalaması amacıyla çalıştırılan programlardır.
Cihazlarımızın işlemcisinde anlık olarak tek bir işlem yapılabildiği için çalışması istenen kod, işlemciye sırayla verilecek ve satır satır çalıştırılacaktır. Genelde bir ortamda yazılan dilin çalıştırılmasına kadar geçen sürede ya bir derleyici yada bir yorumlayıcı kullanılmaktadır.
2- Derleyici (Compiler) Nedir?
Derleyici (Compiler) Nedir: Bir dilde yazılmış olan kaynak kodunu (source code) başka bir dilde yazılmış koda dönüştüren araçlardır. Dönüşüm sonucunda genellikle çalıştırılabilir (executable) kodlar üretilir.
Derleme işleminin yapılmasının temel sebebi yazılan kodların pratik bir şekilde işletim sistemi veya donanıma bağımlı kodlara dönüştürülerek çeşitli platformlarda çalışmasının sağlanmasıdır. İnterpreter ve compiler farkı şu görselde olduğu gibi açıklanabilir:
Sıklıkla kullanılan derleyici çeşitleri şunlardır:
– Source To Source Compiler: Kaynaktan kaynağa derleyiciler bir dilde yazılan kodu başka bir dile çevirirler.
Örnek: C++ dilindeki bir kodun Java diline çevrilmesi.
– Cross Compiler: Çapraz derleyiciler farklı ortamlar arasında geçiş yapılmasını sağlarlar.
Örnek: Linux temelli bir işletim sistemi üzerinde, Windows işletim sisteminde çalışacak şekilde kod yazılması.
– Just In Time Compiler: Tam zamanında derleyiciler ortamdan bağımsız olup ve kod yazılırken kodu iyileştirme amacıyla kullanılırlar.
3- Çevirici (Assembler) Nedir?
Çevirici (Assembler) Nedir: Programlama dilleri ile yazılan kodların derleme yapılan bilgisayarın mikro işlemcisinin Assembly diline çevrildikten sonra sadece 0 ve 1’lerden oluşan makine diline çevrildiği programlardır. Her işlemcinin kendine özgü Assembly dili olduğu için derleme sonrasındaki Assembly kodu işlemciye göre farklılık gösterir.
Compiler, İnterpreter ve Assembler Arasındaki Farklar
Programlama dil dönüştürücüleri olan compiler, interpreter ve assembler arasındaki farklar şu şekilde özetlenebilir:
Programın Derlenme ve Çalıştırılma Süreci
.#. Pre-Process: Ön işlem aşamasında kaynak koddaki yorum satırları kaldırılır, kütüphaneler ve makrolar eklenerek .i uzantısında dosya oluşur.
(Ayrıca Bakınız: Dosya Uzantısı Nedir? Nasıl Değiştirilir?)
.#. Compile: Derleme aşamasında .i uzantılı dosya compiler ile derlenerek Assembly diline ait 3–4 harfli komutların sıralandığı .s uzantılı dosyaya dönüştürülür.
.#. Assemble: Çevirme aşamasında .s uzantılı dosya assembler ile ağırlıkla rakamların bulunduğu makine diline ait .o uzantılı dosyaya çevrilir.
.#. Link: En son aşama olan bağlama aşamasında .o uzantılı dosya bağlayıcı (linker) programı ile kodumuzun ihtiyaç duyduğu harici fonksiyon çağrılarını tanımlarıyla birlikte programımıza bağlar. Bağlayıcı ihtiyaç duyulan bu fonksiyonların nerede bulunduğunu bilir ve programımıza ekstra kodlar ekleyerek programımızı çalışmaya hazır hale getirir.
➽ …
“İnterpreter, assembler ve compiler nedir, ne işe yarar” konulu yazımız hakkında eklemek istediklerinizi, sorularınızı ve (eğer varsa) yazıdaki yanlışları yorumlarda belirtebilirsiniz.
Bilgi güçtür, paylaştıkça büyür. Bu sebeple bu yazıyı da; yazının altındaki (logolu) paylaşım tuşlarını kullanarak gönül rahatlığı ile paylaşarak bize büyük bir iyilik yapabilirsiniz.
Ana Sayfa:
https://www.technogezgin.com/
Hayata Dair Özgün ve Kaliteli Yazılarımız:
https://www.technogezgin.com/blog/