Programlama Nedir
Genel olarak programlama, Kullanıcıların isteklerini karşılayacak Muhasebe,Stok, Oyun, İşletim Sistemi gibi programları oluşturacak alt yapıyı (Kodları) hazırlamaktır. Bu alt yapıyı oluşturan kişilere programcı denir.
Bir programın çalışması demek, Mikroişlemciye daha önceden hazırlanmış bir kod yığınının gönderilmesi demektir. Bu kodlar işlemcinin anlayacağı ASM dilinde yazılmış kısa kodlardır, ASM en hızlı programlama dili olmakla beraber, kullanılması en zor programlama dilidir. ASM dilinde kullanılan tüm komutlar sadece işlemciye ve donanıma hitap etmektedir ve programı yazan kişinin tüm donanımı bilmesi gerekmektedir. Örnek vermek gerekirse A markalı bir ekran kartı için yazılmış bir program B markaları bir ekran kartında çalışmaz, çünkü donanımsal olarak farklılıklar vardır. ASM dili için kısaca bilgisayarın anadili diyebiliriz, çünkü CPU sadece ASM kodlarını anlayacak bir yapıya sahiptir.
PC işlemcilerinin ilk çıktığı günlerde sadece ASM dili olduğu için program yazmak gerçekten çok zordu. Her değişen donanım yada işlemci için tekrar program yazılması gerekiyordu, donanımsal zorluklar dışında yazılımsal zorluklarda vardı, Ekrana sadece A yazmak için bile bol miktarda kod yazılıyordu. Bu tip sorunları kaldırmak için kullanılması kolay üst seviye programlama dilleri oluşturuldu(( C, Basic, Pascal, Cobol v.s.)).
Üst Seviye programlama dilleri ile yazılan kodlar işlemci tarafından anlaşılamayan kodlardır, bu kodlar Compiler(Derleyici) tarafından işlenerek CPU’ un anlayacağı kodlara (ASM) çevrilir.
Bilgisayar Biliminde düşük seviyeli programlama komut kümesinde hiç soyutlama imkanı vermeyen yada az bir soyutlama sağlayan programlama dili anlamına gelir. Buradaki "düşük" kelimesi programlama diliyle makine dili arasında bulunmayan yada az bulunan bir soyutlama imkanını temsil eder. Bu yüzden düşük seviyeli programlama dilleri "donanıma yakın" programlama olarak da anılır.
Düşük seviyeli programalama dilleri herhangi bir derleyiciye yada yorumlayıcıya ihtiyaç duymadan direk olarak kullanılmak üzere yazıldıkları işlemciler tarafından çalıştırılabilirler. Bu yüzden işlemciden işlemciye farklılık gösterirler.
Karşılaştırma yapmak gerekirse, yüksek seviyeli bir programlama dili programın geliştirilmesinde kullanılması gereken bilgisayarın yapısına bağlı semantik uygulamaları ortadan kaldırır, böylelikle bir programın geliştirilme aşaması daha kolay ve anlaşılır hale gelir.
Örnek :
ASM ve BASIC Dilinde yazılmış Ekrana A harfi yazan program
ASM (Alt Seviye Dil) :
1. ORG 100
2. MOV AX,CS
3. MOV DS,AX
4. MOV ES,AX
5. MOV AX, B800 (Renkli Ekran Kartının Bellek Adresi (Her Ekran Kartında Değişebilir))
6. MOV DS,AX 7. MOV SI,0 ( A Harfinin Belleğe Yerleşeceği Alan )
8. MOV AL, 41 ( A Harfinin ASCII Kodu (Hex olarak)
9. MOV DS: [SI],AL ( Ekrana A Harfinin basılma anı
BASIC (Üst Seviye Dil) :
1. PRINT “A”
Örnekte görüldüğü gibi Üst Seviye bir dilde Ekrana A yazmak için tek bir komut yeterlidir, Alt seviye dilde ise çok daha fazla kod yazılması gerekir. Üst Seviye Dillerde yazılan programların kodları her ne kadar kısa görünsene derlenip çalışan duruma getirildiklerinde boyutları, Alt Seviye Dilde yazılan programdan daha büyük olurlar. Sebep ise ASM dili ile yazılan programda hedefe direk (Çok hızlı) ulaşılırken, Üst Seviye dilde derleme esnasında kod içine donanım ve işlemciyi tespit eden v.s. kodların eklenmesidir. Bu yüzden üst seviyede yazılan programlar ASM dilinde yazılan programdan çok daha yavaş çalışırlar.
Üst seviye programla dilleri , yukarıdaki örneklerden de, anlaşıldığı gibi sadece bir çeviri aracıdır, tek programlama dili ASM’ dır. Fakat ASM diline C gibi yakın olan programlama dilleri de bazı kaynaklarda alt seviye dil olarak geçer.
Programlama mantığı oluşmadan önce, her şey donanımsal olarak yapılıyordu 1944 yılında yapılan MARK I, elektromanyetik mekanizmalar kullanarak işlemler yapan son bilgisayardır. 1950 yılından sonra program işleyebilen analog ağırlıklı bilgisayarlar geliştirildi. 1955 yılında transistorun ve 1970’lerde bütünleşmiş işlemcilerin çıkmasıyla programlama hızla ilerleyerek günümüzdeki konumuna gelmiştir.