Programlama Nedir

Programlama en özet haliyle, bir makineye (örneğin bilgisayar) ne yapacağını, makinenin anlayacağı dilden anlatmaktır. Tabi bu olayın en “özet” hali oluyor. Pratikte veya bizim bu blog’da inceleyeceğimiz haliyle ise; bir programlama dili kullanarak, karşımızdaki donanımı yönetmektir. Günlük hayatımızda yaşadığımız problemleri çözmek için, bunları elektronik donanımların anlayacağı bir dille (programlama dilleri) makinelere anlatıp onların yardımına başvuruyoruz.

Hepimizin bildiği gibi bilgisayarlar; bizim gibi Türkçe, İngilizce gibi dilleri anlamıyorlar. Onların Elektronik Nedir? yazımızda anlattığımız gibi, kendilerine has bir çalışma mantıkları var. Yarı iletkenler üzerine kurulu bu mantık, transistörlerin bir bacağına verdiğimiz elektriğe dayanıyor. Daha önce de bahsettiğimiz gibi; bilgisayar işlemcileri, içlerinde milyarlarca transistör barındırıyor ve bu transistörlerdeki iletkenlik durumuna göre başka transistörlerdeki iletkenlik durumları değişiyor.

Peki işlemcilerle nasıl konuşuyoruz? Bunun en temel yöntemi Makine Dili dediğimiz yöntem. İşlemciler kendi mimarilerine göre, bir dizi bite atanan değere göre işlem yapabiliyorlar. Ardarda 1 ve 0’ları işlemciye göndererek işlemciyle direkt iletişim kurmuş oluruz. Bu işlemcinin mimarisine göre farklı uzunluk ve formatlarda olabilir.

Bu yöntem işlemciler için en kolay yöntem olmasına rağmen, insanlar için oldukça zor bir yöntem. Zamanla insanlar böyle ardarda 0 ve 1’ler yazmak yerine çevirici dilleri geliştirmişlerdir. Bu dile assembly denir. Bu dillerde yazılan programları makine diline çeviren çeviricilerin kendisine de assembler denir. Eskiden sayılarla ifade edilen atama, taşıma, çarpma, bölme vb işlemler assembly’de harflerle (MOV, ADD, DIV vb) ifade edilmeye başlanmıştır. Assembly’de yazılmış kodlar, çeviriciler tarafından sayısal hale getirilip işlemciye gönderilir.

Vikipedia’dan aldığım bir örnekte, aynı işi yapan programın Assembly, C ve Visual Basi kodlarını karşılaştırabilirsiniz. Diğerlerinde bir satırda haledebileceğimiz bir komutu, Assembly’de 5-6 satır kod yazarak yapabiliyoruz.

Assembly sayesinde, işlemciyle kurulan iletişim sayılar yerine harflere çevrilse de, nihayetinde programlama yöntemi aynıydı. Direkt işlemci ile konuşuyordunuz. Fakat işlemciye 0011 01 10 00000010 demek yerine, ADD A BX komutunu kullanıyordunuz. Çevirici bunu sizin yerinize sayılara çeviriyordu. Sayılar yerine harfler kullanmak programlamayı biraz daha kolay hale getirdiyse de, halen donanımla direkt iletişim kurduğunuz için, yüksek seviye bir donanım hakimiyeti gerektiriyordu. Öğrenmesi zordu ama donanım üzerinde tam bir hakimiyeti vardı. Ancak zamanla yazılımcılar donanım üzerindeki hakimiyeti işletim sistemlerine veya başka yardımcı yazılımlara devretmeye başladılar. Özellikle işletim sistemlerinin gelişmesiyle, programlamanın donanımla direkt bağlantısı azaldı. Bu durum zamanla yüksek seviyeli dillerin ortaya çıkıp yaygınlaşmasına yol açtı.

Bu diller programcının donanımla bağlantısını (aynı zamanda hakimiyetini) azaltırken, daha kolay ve hızlı program yazılmasını sağladı. Örneğin ekrana bir yazı yazdırmak için assembly’de 5 satır kod yazmak gerekirken, C’de tek bir satır kod yazmak yeterli oluyordu. Burada devreye derleyiciler (compiler) giriyordu çünkü. Sizin yazdığınız tek satır kodu, ne yapmak istediğinizi anlayıp assembly’deki 5 satıra çeviren başka programlar. Bu derleyici programlar aracılığıyla, biz artık çok daha kısa ifadeler kullanıyoruz. Onlar (derleyiciler) bizim yerimize assembly veya makine dili kodlarını oluşturuyorlar.

Bir programcının makine dili veya assembly bilmesine gerek yoktur. Hele bu işlerde yeniyseniz, hiç kafanızı karıştırmayın. Günümüz şartlarında yüksek seviye programlama dilleri, size hemen her türlü imkanı sunmakta.

One thought on “Programlama Nedir

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir