Yazılımda High Level ve Low Level

Ankara University Computer Society
TechSheet
Published in
2 min readNov 26, 2022

Yazılıma başlayan birinin ilk duyduğu şeylerden birisi “Ya abi C/C++/Java ile başla.” oluyor. Neden diye sorduğunda ise “Çünkü bu dillerden birini öğrenirsen diğer tüm dilleri öğrenmen daha kolay olur.” cevabını alır. Peki bu söylem nasıl ortaya çıktı ve bu dilleri Python veya JavaScript gibi dillerden ayıran şey nedir?

İnsanların böyle demesinin nedeni yazılım dillerini birbirinden ayırmada kullanılan High Level ve Low Level kavramlarıdır. Biz de bu yazımızda bu iki kavramı açıklayacağız.

Şöyle ki insanların konuşma diliyle makinelerin anladığı dil birbirinden çok farklı. Bu yüzden yazılım dilleri bizim konuşma dilimize daha yakınsa High Level yani Yüksek Seviye; makine diline daha yakınsa Low Level yani Düşük Seviye olarak geçiyor. Yalnız dikkat etmemiz gerekiyor ki yüksek ve düşük seviye iyi veya kötü anlamı taşımıyor. İkisinin de kendine göre avantajları ve dezavantajları var.

Bir örnekle açıklamak gerekirse:

Python’ la yazılmış ilk kodda direkt “for every meyve in sepet” yani “sepetteki her meyve için” ifadesini neredeyse aynı şekilde yazmış olduk. Bu koda bakan birinin kodun ne yaptığını anlaması çok daha kolay: Kod burada sepetteki her bir meyvenin sırasıyla kesileceğini söylüyor.

C ile yazdığımız bu kod ise önce i adında bir değişken oluşturuyor, sonra eğer i sepetteki meyve miktarından daha azsa kodu çalıştırıyor. Kod bloğunun içine girildiği zaman, meyve değişkeninin sepet dizisindeki kaçıncı eleman olduğunu söylüyor. Sonra da o meyveyi kesiyor ve en son i’yi bir arttırıp döngünün sonraki adımına geçiyor.

Aslında makinenin bu iki kodda da yaptığı şey aynı. Farklı olan şey ise Python kodunu bizim, C kodunu ise makinenin daha kolay anlaması. Açıklamak gerekirse:

  1. Yüksek seviyeli dillerin okunması, anlaşılması, hataların ayıklanması ve bakımının yapılması daha kolaydır. Bu yüzden yüksek seviyeli dillerin kodları düşük seviyeli dillerin kodlarına göre daha sürdürülebilirdir.
  2. Makine, düşük seviyeli dilleri daha kolay anladığı için bu kodlar daha hızlı çalışırlar. Eğer programınızda performans öncelikliyse, mesela anlık görselleştirme yapıyorsanız, düşük seviyeli bir dil kullanmanız çok daha iyi olacaktır.
  3. Yüksek seviyeli dilleri öğrenmek düşük seviyeli dilleri öğrenmekten çok daha kolaydır ama düşük seviyeli bir dil öğrendiğiniz zaman makinenin nasıl çalıştığını daha iyi anlarsınız. Bu yüzden Bilgisayar Bilimi öğrenen birisinin düşük seviyeli bir dil öğrenmesi elzemdir.

Özetle, konuşma diline daha yakın olan yazılım dilleri High Level, makine diline daha yakın olanlarsa Low Level’ dır. Hangisiyle başlamanızın daha iyi olacağı ise başka bir yazımızın konusu, bu yüzden takipte kalın!

Sonraki yazılarda görüşmek üzere, hoşçakalın!

-Adem Efe Devrez ve Elem Yalçınkaya

--

--

Ankara University Computer Society
TechSheet

Ankara Üniversitesi'nin ilk ve en büyük bilgisayar topluluğuyuz. Üyelerin sosyal, kültürel, mesleki ve akademik faaliyetlerine yardımcı olmak için çalışıyoruz.