5 Ocak 2016 Salı

Yorumlanan ve Derlenen Diller

Bilindiği gibi, bilgisayarlar dijital makineler olduklarından sadece tek bir dilden anlarlar, o da makine dilidir. Makine dili sadece 0 ve 1'lerden oluşan ve insanların anlayamacağı kodlardan oluşur. Bu yüzden insanlar, kendi bildikleri yüksek seviyeli bir dilde programlarını yazarlar. Bilgisayarlar, yazılan bu programları kendi anlayacakları dile çevirmek için derleyici denilen özel yazılımları kullanırlar. Derleyici yazılımları kendisine girdi olarak gelen yüksek seviyeli dilde yazılmış kodu, bilgisayarların anlayabileceği makine koduna çevirirler. Yorumlanan ve derlenen diller ayrımı da işte burada ortaya çıkıyor.
Derlenen dillerde yazılmış bir program bir kere makine koduna çevirilir ve bir "çalıştırılabilen kod" ortaya çıkar. Buna bilgisayar bilimlerinde "executable code" deniyor. Bu kod ortaya çıktıktan sonra çalıştırılabilir ve istenen işi yapar. Bir kere çalıştırılabilir kod oluştuktan sonra bütün çalıştırma işlemlerinde bu kod çalışır.
Yorumlanan dillerde yazılmış bir program ise çalıştırılma işleminin her defasında makine diline çevrilir ve daha sonra istenen işi yapar. Burada her runtime anında iki işlem (çevirme ve çalıştırma) ardarda yapılır.
Derlenen diller için C, C++ veya kısmi olarak Java'yı örnek olarak verebiliriz. Yorumlanan diller içinse Python, JS gibi dilleri örnek gösterebiliriz.
Derlenen ve yorumlanan dillerin birbirine karşı üstünlükleri vardır. Örneğin yukarıda bahsettiğimiz, bir kere derle ve onu kullan özelliğinden dolayı derlenen diller, yorumlanan dillere göre hızlıdır. Çünkü yorumlanan dillerde ardarda iki işlem yapılır, bu da programın çalışmasının yavaşlamasına neden olur. Aslına bakılırsa, işlemcilerin gelişen saat performansları böyle üstünlükleri ortadan kaldırmaktadır. Hızlı işlemcilerle birlikte, derlenen ve yorumlanan diller arasındaki bu hız farkı artık önemsenmeyecek noktalara gelmiştir. Ancak gömülü sistemler gibi sınırlı kaynaklara sahip işlemcilerde bu üstünlük hala anlamlıdır. Raspbery Pi, Arduino gibi nispeten düşük özellikli mikrodenetleyicilerde bu fark hala devam etmektedir. Bu yüzden bu dillerin (derlenen, yorumlanan) hangisini kullanacağınızın kararı, hangi platformu kullanacağınıza bağlı olarak değişir.
Ayrıca yorumlanan dillerin, derlenen dillere göre runtime anına daha fazla adapte olabilme üstünlükleri vardır. Örneğin derlenen dillerde bir tamsayı değişken kullanmak isterseniz, önce bu değişkeni tanımlamak/deklare etmek gerekir.
int x;
gibi bir ifadeyi programın üstünde bir yerlerde tanımlamış olmanız gerekir.
Ancak Python gibi bir dilde bu tamsayıyı tanımlamadan istediğiniz herhangi bir yerde kullanabilirsiniz. Derleyici (Yorumlayıcı) kullanılan değişkenin, kendisine refere edilen değerine bakarak tamsayı, kayan noktalı sayı vb. olduğuna kendisi karar verir.

3 yorum:

Adsız dedi ki...

Hocan peki PHP Derlenen dil mi, yoksa yorumlanan dil mi? Tesekkurler dikkatiniz icin...

Programmer dedi ki...

Yorumlanan

zacharyahgadzinski dedi ki...

Best Casino sites UK | No Deposit Bonus for December 2021
The casino 룰렛 전략 bonus available at the UK's best gambling sites will help 사카마치 미루 to entice players to sign up, 잭팟 시티 and retain new players for a free spin of bonus money. These 🥇 Best Casino: Grand Ivy Casino🥇 Best Deposit 바카라예측프로그램 Bonus: LeoVegas🏆 Best Bonus Code: VBET 화이트 벳 Casino