Fraud Blocker Seviyelerine göre programlama dilleri - 1 ve derleyici kavramı
2.Ünite - 5.Ders

Seviyelerine göre programlama dilleri - 1 ve derleyici kavramı

Videoda birkaç kez söyledik ancak bir kere de yazılı olarak belirtelimki akılda kalıcı olsun. Çizmiş olduğumuz piramitte mavi ve turuncu renkli katmanlar aslında aynı programlama dilini temsil ediyor. Bu dil bilgisayarın doğrudan anlayabildiği dil. Yani saf makine dili. İngilizce adıyla "Machine Code". Machine code'un 2 lik sayı sistemindeki gösterimi ile 16 lık sayı sistemindeki gösterimi farklı elbette. Örneğin; 2 lik sistemdeki "10101101 00000000 00001000" ifadesi 16 lık sayı sisteminde "AD 00 08" ifadesine karşılık geliyor. Sizce hangisi daha okunabilir? Tabii ki 16 lık sayı sisteminde yazılan ifade daha okunabilir, kolay anlaşılabilir bir ifade.

Bundan dolayı ben de piramiti oluştururken 16 lık sayı sisteminde yapılan gösterimi 1 basamak yukarı çizdim. Çünkü bu dersimizde seviye kavramı hakkında konuşuyoruz. Seviye ne demekti? İnsanın algısına yakınlık veya uzaklık. 16 lık sayı sisteminde yazılan ifade insan algısına daha yakın geleceği için ben de onu turuncu renk ile temsil ettim ve mavi basamağın üzerine yerleştirdim. Tabii ki seviye kavramı yalnızca okunabilirlik veya insan algısı ile ilişkili bir kavram değil. Aynı zamanda yazılımcıya yüklenen sorumluluk ile de ilgili bir kavram. Programlama dilinin seviyesi yükseldikçe aşağı seviyeli bazı işlemlerin(bellek yönetimi vs.) yazılımcının sorumluluğundan çıktığını söyleyebiliriz.

16 lık sayı sisteminde gösterim (Machine Code)
2 lik sayı sisteminde gösterim (Binary Code)

Yukarıdaki görselde olduğu gibi turuncu ve mavi kutuyu, gri bir kutunun içinde çizersek aslında daha doğru ifade etmiş oluruz. Gri kutunun kendisine Machine Code(saf makine dili) diyebiliriz. https://stackoverflow.com/questions/21571709/difference-between-machine-language-binary-code-and-a-binary-file ve yine buradaki stackoverflow linkini incelersek benzer bir sorunun sorulduğunu görebiliriz. Bu soruya verilen cevaplarda da, Machine Code ile Binary Code'un aynı şey olduğu söyleniyor.

Bu noktada belki aklınıza şöyle bir soru gelebilir; piramitteki her basamak için, "o basamakta yer alan programalama dilinin 16 lık sayı sistemindeki yazım biçimi" şeklinde yeni bir katman mı koyacağız? Hayır, bunu yalnızca machine code için yaptık.

stackoverflow.com nedir?

Stackoverflow yazılım sektörüne odaklı bir soru cevap sitesi. Global bir platform olduğu için sitenin dili ingilizce. Dünyanın pek çok farklı yerinden yazılım ile ilgilenen kişiler, sorular soruyorlar ve bilen kişiler bu soruları cevaplıyorlar. Bir soruya birden fazla kişi cevap yazabiliyor. Sitedeki üyeler, sorulara gelen cevaplara puan vererek en ideal cevabın daha yukarıda gözükmesini sağlıyorlar. Ve aynı zamanda soruyu soran kişi de cevaplar arasından kendisi için en faydalı cevabı seçiyor. Soruyu soran kişinin "en faydalı cevap" olarak seçtiği cevabın yanında yeşil renkli bir onay işareti çıkıyor.

- Peki stackoverflow sitesi bizim için neden önemli?

Bize çok fazla zaman kazandırıyor. Yazılım geliştirme yaparken takıldığımız bir nokta olursa veya çözemediğimiz bir problem olursa, çok büyük bir olasılıkla bunun cevabını stackoverflow'da bulabiliyoruz. Çünkü bu platform global bir platform. Dünyanın her ülkesinden yazılımcılar(veya bilişim sektöründeki diğer kişiler; Sistem Yöneticisi vs.) burada soru soruyorlar. Ve mutlaka bizim aklımıza takılan bir soru daha önce başka birisi tarafından sorulmuş oluyor. Yukarıda referans olarak verdiğimiz stackoverflow linkinde de aynı durum söz konusu. Bizim üzerinde konuştuğumuz konu zaten bir başkası tarafından sorulmuş.

- Stackoverflow'da yer alan cevapların güvenilirliği nedir?

Çok fazla sayıda olumlu puana sahip cevapların doğruluğundan emin olabiliriz. Zaten pek çok cevapta, cevabı yazan kişi kaynak, makale veya dökümantasyonun linkini de cevabın içinde paylaşıyor. Destekleyici olması bakımından referans linkler de veriyorlar. "Ben bu cevabı verdim bakın işte kaynağım burası" gibisinden düşünebiliriz.

- Bu kursta stackoverflow'u yoğun bir şekilde kullanacak mıyız?

Hayır. Programlamaya Giriş kursunda stackoverflow kullanmamızı gerektiren bir durum olmayacak. Ancak uygun senaryolar oluşursa, stackoverflow ile bir tanışıklığınız olsun diye bir kaç yerde kullanabiliriz.

Programlama dillerini başka hangi kriterlere göre gruplandırabiliriz?

Programlama dillerini sadece seviyelerine göre gruplandırmıyoruz. Başka kriterlere göre de programlama dillerini gruplandırabiliriz. Nedir bu diğer kriterler? Örneğin kullanım alanlarına göre gruplandırabiliriz. Yapay zeka alanında kullanılan diller, sistem programlama alanında kullanılan diller, web uygulamalarında kullanılan diller vb.

Bunun dışında desteklediği programlama paradigmasına göre de bir gruplandırma/sınıflandırma yapabiliriz. Örneğin; prosedürel programlama paradigması, nesne yönelimli programlama paradigması, fonksiyonel programlama paradigması vb.

WhatsApp