derleyici

Derleyici Nedir?

Bilgisayarlar ikilik tabanda çalışırlar yani 0 ile 1’lerle çalışır. Ve başka hiçbir şeyi algılamaz. Bu sebeple de derleyicilere ihtiyaç duyulur. Bilgisayar bu komutları algılıyor ancak programcılar bu komutları derleyerek veriyor. Makine diliyle program yapmak oldukça zordur. Çok iyi bir eğitim ve fazlaca zaman gerektirir. İnsanlar bu problemi çözmek için de kolay anlaşılabilecek dil geliştirmiş ve program her çalıştırıldığında bilgisayar bu dili makine diline çevirmesini sağlayacak şekilde ayarlanmıştır. Bu yöntem her seferinde bilgisayara çevirme zorunluluğu getirdiğinden dolayı da alete fazlaca yükleme yapılmış olur ve bu yöntem terk edilir. Genellikle de makine koduna çevirmede derleyicilerden yararlanılır. Genellikle kullanım kolaylığı sağlamak amacıyla böyle bir yönteme başvurulmuş ve derleyiciler geliştirilmiştir.

Aslında bu sayede geliştiriciler; yani derleyici kullanarak aynı işlevi farklı programlama dilini kullanarak gerçekleştirmek isterler. Üstelik bu derleyicilerin olması da birden çok programlama dilinin ve geliştiricilerin alternatif fillerle çalışmasına yardımcı olmaktadır Bu da ekstra fazla zaman kaybı demek geliştiriciler için bu da yazılımların günümüzde oldukça geç oluşmasına sebep olacaktı. Bu sayede de geliştiriciler farklı dillerde çalışsalar da ya da o dile hakimler diye farklı dillerden de yararlanıp bir yazılım geliştirdikleri durumda bu dili bilgisayarın anlayacağı dile dönüştürmek oldukça kolay bir hale gelmiştir. İngilizce adıyla da Compiler, farklı dildeki bu kodları alıp derledikten sonra da aynı seviyedeki programlama diline çevirmek zorunda değil sadece aynı zamanda da alt seviyeli ve üst seviyeli program dillerine; bu dilleri de çevirmesi mümkün. Basitçe açıklamak gerekirse C diliyle yazılmış bir yazılım derleyiciler sayesinde makine dili olan Assembly veya daha alt seviyeli programlama dillerine dönüştürülebilir.

Derleyiciler Nasıl Çalışır?

Birbirinden oldukça farklı amaçlar ve doğrultular için üretilen programlama dilleri yazım kuralları gibi farklılıklar taşır. Anı işlevleri aslında farklı şekillerde ele alırlar. Bu durumda program geliştiricileri ve yazılımcılar da birden çok programlama dilini bir arada kullanır. Ancak bu dillerin birbirlerinin anlayacağı makine diline dönüştürülmesi gerekir. Bunun sebebi de genellikle diller arasındaki bu işlemin pratik bir şekilde yapılmasının istenmesindendir. İşte bunu da derleyiciler yapar. Derleyiciler hataları giderme, hataları yönetme, etkin bir şekilde kodların yorumlanması gibi katkılar da sunar. Scanning, Lexical Analysis, Syntactic Analysis ve Semantic Analysis adımlarını izlerler. Tek geçişli (one pass) ve çok geçişli (multi pass) çeşitleri vardır. Tek geçişliler kaynak kodu baştan sona bir kez okurken çok geçişliler birden fazla kez okur. Tek geçişli derleyiciler kodun incelenme sürecini daha hızlı ele almasına rağmen bazen zaı durumlar karşısında dilin tasarımı sebebiyle işlevsiz kalabilmektedirler. Çok geçişli derleyiciler ise daha iyi tarama işlemi yaparlar. Derleyici kodu bir bütün olarak ele alırlar. Ancak tabı satır veya blok olarak da değerlendirmesi süreci mümkündür. Bu tür durumlarda aslında yorumlayıcılar ön plana çıkarlar yorumlayıcılar yazılımları satır ve bloklar halinde çalıştırır ve bir sonrakine sıra gelmeden geçiş yapmazlar.

Herhangi bir tercümanın yaptığı gibi de bu iki dili çevirmeye çalışırken olası oluşabilecek hataları bulur ve bunların giderilmesini sağlar. Herhangi bir iletişim sorunu olmaması için bu hataları yazılım geliştiricisine bildirir. Bu açıdan da bakıldığında derleyici kaynak kodların sorunsuz bir şekilde de dönüşümünü sağlamak ister. Aslında bu işlemin yapılmasındaki amaç ve gereklilik genel olarak herhangi bir dilde yazılan yazılımın makine diline dönüştürülmesi zorunluluğudur. Bilgisayar tarafından kavranıp işlenebilmesi için bu gereklidir. C diliyle bir yazılım yazdınız ancak bilgisayarınız C dilini doğrudan anlayamayacak ancak PASCAL dili ile yapılan kodlamayı anlayabilecektir. Tam olarak bu aşamada da c dili PASCAL diline çevrilir derleyici tarafından. Sorunsuz bir şekilde derleyip kod dizisi dönüştürüldüğünde de bilgisayar tarafından bu dil algılanıp koşturulabilecektir.

Aynı zamanda da bir programlama dilinin ne kadar yüksek seviyeli olduğunu da derleyici sayesinde algılayabiliriz. Aslında yöntem oldukça basittir kaynak kodu ne kadar zorlanarak çeviriyorsa, yürütebilir hale getirmek için; o kadar yüksek seviyeli bir programdır diyebiliriz. Bu programlama dili. Mesela Assembly derleyicisi yazamazsınız çünkü zaten Assembly’nin kendi derleyicisi Assembler vardır. Assembly o kadar düşük seviyeli bir programlama dilidir ki derleyicinin bu konuda yapabileceği pek bir şey yoktur. Oysa ki c dilinde derleyicinin yapabileceği çok şey vardır.  C dili kullanan insanlar derleyicilerden oldukça sık yardım alırlar daha iyi bir yazılım üretmek için ve geliştirmek için.

Bir cevap yazın