High Level (Yüksek Seviye) ve Low Level (Düşük Seviye) bilgisayar bilimleri terminolojisinde sıklıkla duyabileceğiniz terimlerdir. Bu iki teknik terim bir sistematik operasyonun makine diline olan yakınlığı olarak açıklanabilir.
Çoğunlukla programlama dilleri için kullanılan High Level ve Low Level bize programlama dilinin yapısının, 1 ve 0 lardan oluşan makine diline ne kadar benzer olduğunu belirtir. High Level, programlama dilinin donanımdan oldukça soyut olması yani günlük yaşamdaki dilimize daha yakın olduğunu belirtir. Bu sayede programcılar donanım bilgisine gereksinim duymadan sadece sorunun çözümüne odaklanmaktadırlar
İçindekiler
High-Level ve Low-Level Farkları
Bilgisayarlar yazdığımız kod parçalarından, if, else, for gibi komutlardan hiçbir şey anlamazlar. Bu nedenle bizim bunlar gibi kodları ilk olarak makinemizin tek anladığı 1 ve 0’lara dönüştürmemiz gerekir. Bu işlem için compilerlar(derleyiciler) ve interpreterlar(yorumlayıcılar) kullanılmaktadır. Fakat Low Level diller makine diline çok daha yakın olduğundan bunlara gerek duymaz.
High Level Programalama Dilleri | Low Level Programlama Dilleri |
Geliştirici dostudurlar | Makine dostudurlar |
Anlaması kolaydır | Anlaması oldukça zordur |
Hata ayıklaması kolaydır | Hata ayıklaması karmaşıktır |
Öğrenmesi ve kodlaması kolaydır | Öğrenmek baya zaman alır |
Yazdığınız kodu farklı platformlarda çalıştırabilirsiniz | Makineye göre çalıştırma durumunuz değişir |
Derleyici ve yorumlayıcı gerektirir | Dönüştürücü(assembler) gerektirir |
Yavaş çalışır | Makine diline daha yakın olduğundan daha hızlı çalışır |
Bellekte fazla yer kaplar | Bellek dostudur az yer kaplar |
High Level ve Low Level Programlama Dilleri
Bu konuda listelemeyi yapmadan önce şunu belirtmek gerekir ki bir programlama dilinin high ya da low level olduğu dönemine göre değişiklik göstermektedir. Aynı normal hayatta kullandığımız dillerin canlı ve gelişmekte olması gibi programlama dilleri de sürekli gelişim halindedir. Örnek vermek gerekirse C programlama dili geçmişte high level sınıfında yer alırken günümüzde daha kullanıcı dostu, daha soyut dillerin ortaya çıkması sebebiyle bazıları için C artık low level kategorisine girmiştir. Fakat çoğunluk middle level yani orta seviye olarak sınıflandırmaktadır.
High Level Diller
Soyutlama özelliğine sahip High Level diller okunabilirliği ve kolay kullanımı sayesinde günümüzde oldukça popüler konumdadır. Bunlardan bazıları :
Low Level Diller
Bilgisayar sistemine daha yakın olan low level diller kullanım açısından zor olsa da hız ve bellekte kapladığı yer konusunda high level dillere kıyasla daha iş çıkarmaktalar. Low level dillerde yazarken talimatları çok net vermeniz gerekmektedir. Örneğin bir tam sayı değeri atarken onun bellekte nerede tutulacağını da belirtmeniz gerekir. Çok az miktarda soyutlama içeren diller şunlardır:
- Assembly
- Machine Language (Makine dili)
Hangisini Öğrenmeliyiz?
Bu soru programlamaya yeni başlayanlar tarafından sıklıkla sorulmakta. High level ya da low level diller birbirine üstünlük sağlar mı? Bu sorunun kesin doğru bir cevabı yoktur. İki türde de belirli üstünlükler yakalarsınız fakat birbirine kesin üstün gelen bir dil yoktur.
Her iki türün de farklı yararları vardır. Low level diller bilgisayarlar tarafında çok daha az yorum gerektirir bu sebeple bir Assembly kodu Python koduna göre çok daha hızlı çalışır. Ayrıca low level diller high level dillere kıyasla programcıya veri depolama, bellek ve bilgisayar donanımı üstünde çok daha fazla kontrol sağlar. Bu low level dilleri işletim sistemi çekirdeği ya da sürücü yazılımı yazmak için kullanabilirsiniz ama oyun geliştirme ya da web tasarımı amaçlarıyla kullanamazsınız.
Öte yandan high-level diller öğrenme ve kullanım açısından kolay olduğundan programcının çok daha verimli kod yazmasına olanak sağlar. Bu rahatlığından dolayı bu diller daha güvenli kabul edilir ve geliştiricilerin hata yapma oranı daha azdır.
Sonuç olarak iki tür de birbirine karşı belirli bir baskınlık gösteremez ama her birinin farklı alanlarda iyi yönleri bulunmakta. Bu nedenle hangi dil ile kodlama yapacağınıza sorununuz ya da probleminize göre karar verebilirsiniz.