Programlama dillerindeki seviyeler ne anlama gelir?

Programlama dillerinin seviyelere göre ayrıldığını görmüştük. Seviyelerin ne anlama geldiğini neden seviyelerle ifade edildiklerini öğrenelim.

Programlama dilleri, düşük seviyeli, orta seviyeli, yüksek seviyeli ve çok yüksek seviyeli programlama dilleri olarak dörde ayrılırlar;

Düşük seviyeli programlama dilleri

  • Assembly
    Assembly, makine dilinden sonra en düşük seviye programlama dilidir. Uzun süre önce programlar makine diliyle (1 ve 0’larla) yazılırlardı. Ancak bilgisayar diliyle program yazmak çok zordu ve çok uzun vakitler almaktaydı. 1 ve 0 yerine kullanıcının anlayabileceği bir yazıma sahipti. Yazılan Assembly programları anında bilgisayar diline çevrilebilmektedir. Bu kodlar her işlemci mimarisinde farklılık gösterebilmektedir. Çünkü Assembly kodlarının syntax'ları, işlemciyi tasarlayanlar tarafından belirlenir. Bu yüzden yazılan kodlar programın çalışacağı işlemciye göre yazılır. Assembly çok fazla kullanılan bir dil değildir. Genelde aygıt driver'ları, düşük seviye gömülü sistemler ve gerçek zamanlı sistemler yazılmaktadır.

Orta seviyeli programlama dilleri

  • C, C++, Go
    Assembly dili, öğrenmek ve karışık programlar yazmak için oldukça zordu. Her ne kadar 1 ve 0 kullanılmasa da, hataları bulmak, karışık programlar yazmak, başka platformlara uyum göstermek ve kısa sürede geliştirme yapmak zordur. Orta seviyeli programlama dillerinin en büyük özelliği derlenebilir olmalarıdır. Derlenen bu diller executable (çalıştırılabilir) dosyalarına dönüşür. Cross-compile (çapraz derleme) yapılarak, her türlü işlemci mimarisinde çalışabilecek executable'lar oluşturulabilir.

  • C#
    Microsoft'un geliştirmiş olduğu bu dil, başlangıçta Windows için yazılmışsa da Linux ve UNIX'ler için de ayrı bir derleyicisi bulunmaktadır. C# da Java'ya benzer bir yapıya sahiptir. C# kodları derlenerek executable dosyalarına dönüştürülür. Linux ve macOS'ta derleyebilmek için Mono Project gerekmektedir.

Yüksek seviyeli programlama dilleri

  • Java
    Java’nın diğer programlama dillerinden farkı, JVM adında sanal makine üzerinde çalışmasıdır. Bu sayede işlemci mimarisinden bağımsız olarak çalışır. Java’da kodlar yazıldıktan sonra Java derleyicisi tarafından JVM’in okuyabileceği bytecode’a çevrilir. Oluşan bytecode’lar (.class dosyası) JVM tarafından yorumlanır. JVM'nin desteklediği tüm işlemci mimarilerinde, yazılan Java programlarının çalıştırılması mümkündür.

Çok yüksek seviyeli programlama dilleri

  • PHP, Ruby, Python ...
    Bu dillerin en büyük avantajı yazımı ve öğrenmesinin kolay olmasıdır. Ancak kendisinden düşük seviyeli programlama dillerine göre çalışması daha yavaştır. Çok yüksek seviyeli programlama dilleri makine diline çevrilmez. Bir yorumlayıcı program tarafından kodlar okunur, işlemlerden sonra çıktısı yapılır. Yorumlayıcı programlar genelde C/C++ diliyle yazılır. Örneğin PHP, Ruby ve Python C diliyle yazılmıştır. Yani Windows'ta bir PHP projesi çalıştırılırken, birbirine bağlı olan tüm dosyalar "php.exe" tarafından okunur ve yorumlanır. Bu projenin bir web sitesi olduğunu varsayarsak, her istekte bu dosyalar tekrar tekrar okunup yorumlanır.