İlk Programlama Dili Nasıl Yazıldı

preview_player
Показать описание
Programlama dilleri programlama dilleriyle yazıldıysa, ilk programlama dilini kim yarattı diyenlere tokat gibi cevap

.

Yazılımcı olduğumdan dolayı, yazılıma yeni yeni ilgisi olmaya başlayan insanlardan böyle bir soru arıyorum zaman zaman. Bu sorunun tek bir yanıtı yok aslına bakarsanız, nereden baktığınıza göre değişir.

Bunu daha iyi anlayabilmek için bilgisayarların ilk çıkış noktasına bir bakış atalım.

Bugün bildiğimiz tüm bilgisayarlar dijital olsa da, bilgisayar dediğimiz tüm aletler dijital değildi. Analog, mekanik ve hatta hidrolik bilgisayarlar da tarihte var oldu. Aslında insan beynine de biyolojik bir bilgisayar diyebilirsiniz, fakat burada söz konusu olarak ele alacağımız nesneler insan yapımı olanlar olacak elbette.

Burada anahtar kelime bilgiyi işlemek, bugün bildiğimiz tüm bilgisayarların dijital ve elektronik olmasının nedeni de, muazzam derecede bilgiyi işleyebilmesine rağmen, bunu çok az eforla ve çok küçük bir alanda yapabilmesi. Transistörler insanlık tarihinin en büyük buluşlarının başında sayılır. Transistörler sayesinde çok güçlü bilgisayarlara sahibiz.

İnsanların TikTok videosu çekmek için kullandığı sıradan bir akıllı telefonu çok da uzak olmayan, geçmiş bir tarihe götürseydik, o zaman için bir süper bilgisayar sayılacaktı.

Abaküsün bilgisayarın en ilkel hali sayıldığına dair bir geyik duydunuz mu bilmiyorum. Ben çocukken bunun karikatürleri vesaire yapılırdı. Mantıken doğru bir yaklaşım. Girdi olarak bir veri veriyoruz, bir işlem yapıyoruz ve o da bize bir çıktı veriyor. Örneğin basit algoritmalarla çarpma işlemi yapabilmesini sağlayabiliyoruz.

Tipik olarak elektronik analog bilgisayarlar soketlerle yönetilirdi. Panelde yer alan jack girişlerine farklı şekillerde takılan soketler veri tanımlamayı ve işlem yapmayı sağlardı. Yani programlama bu şekilde yapılırdı.

Sonrasında bilgisayarlar delikli kartlar ile kullanılmaya başlandı. Bu konuda dokuma tezgahlarından ilham alınmıştı. Dokuma tezgahlarında işlemleri otomatikleştirmek için bu yöntem icat edilmişti. Program kartlara açılan deliklerle kodlanıyordu ve makine bunu okuyarak çalıştırıyordu.

Bugün kullandığımız dijital bilgisayarlar, en temelde makine dili çalıştırır. Makinenin devrelerinde yer alan, mantıksal kapı dediğimiz yapılar ile veri saklamaya yarayan, veri işlemeye yarayan yapılar oluşturulur. Bunlara register diyoruz. Çok fazla teknik detayına girmemekle birlikte, makine kodunun doğrudan bu yapılardaki elektrik akımlarına denk gelecek şekilde, 0 ve 1 ifadelerini taşıdığını belirtmekle yetinelim. 0 düşük voltaj, 1 ise yüksek voltaj anlamına gelir ve register'lardaki durumlar bu şekilde kontrol edilir. Günümüz programlama dilleri de makine diline dönüştürülerek kullanılır. Ya doğrudan, ya da dolaylı olarak. Yani en temelde yazdığımız kod donanıma aktarılır ve bunu da voltaj değerlerini ayarlayarak yapar.

Kısaca eğer hiyerarşik bir tabanda bir yanıt bekliyorsak, bu sorunun bir yanıtı yok. Programlama dilleri düşünüldüğü gibi birbirlerine eklenerek ilerlemedi. Tabii burada bir dilin superset'i olan dillerden bahsetmiyorum. Elimizde makine dili var ve her şeyi ona dönüştürüyoruz.

Diğer bir açıdan bakarsak, tarihteki ilk programlama dilinin, daha doğrusu algoritmanın oluşturucusu Ada Lovelace olarak geçiyor. Kendisi çok zeki bir insan olacak ki, henüz ortalarda tam anlamıyla bilgisayar denebilecek bir makine yokken gerçekleştirdi bunu. Tanıştığı Charles Babbage isimli matematikçinin ortaya atıp oluşturmaya çalıştığı, bilgisayara yakın ilk şey sayılabilecek Difference Engine isimli hesaplama makinesini görüp hayran kaldı ve makineyi olduğundan katlarca daha kapsamlı bir şekilde kullanmayı sağlayacak notlar ekledi ve Bernoulli sayılarının nasıl bulunacağına dair bir algoritmayı oluşturdu. Bu, tarihteki ilk bilgisayar programı olarak geçer.

Bilgisayar tarihinden bahsedip de Alan Turing'i anmamak olmaz. Kendisi özellikle Turing Makinesi denen kavramı geliştirerek, bilgisayar kavramını bir hesap makinesi olmaktan çıkardı ve her problemi çözebilecek makine olmasını sağladı. Bugün kullandığımız bilgisayarların çözemeyeceği bir problem yok. Bugün bir Snapchat filtresi dahi kullandığınızda, bunun çalışması da aynı yönteme dayanıyor. Her programlama dili çalıştığında bir Turing makinesi oluşturur, her şey Turing makinesi dediğimiz soyut kavrama indirgenir ve o şekilde çözülür.

Licensed under Creative Commons: By Attribution 3.0 License
Рекомендации по теме
Комментарии
Автор

Severek takip ediyoruz hocam. Engin bilgilerinizle aydınlandık.

YigitZiştoylu
Автор

Hesap makinelerinden yola çıkıldığı düşünülebilir, örneğin "1+2" işlemi için "1" tuşuna basıldığında hangi transistörlerin iletime geçeceği belirlenir, aynı şekilde "+" tuşuna basıldığında ve "2" tuşuna basıldığında da aynı işlem tekrarlanır, bu kombinasyonlar sonucunda "AND", "OR", "XNOR", "NOT" gibi lojik sinyalller üretilir ve bu aktif edilen transistorlerin dizilimi, karşılığında, hangi transistörlerin tetikleyeceğine göre cevabı "3" şeklinde çıktısını alınabilir.. Günümüzde bu rakamlar haricinde, bu olguları kullanarak assembly gibi düşük seviyeli dillerde kulanılan parametreler yada değimler sayesinde binlerce transistorun kısa zaman içerisinde işlem yapmasına olanak tanır.. yani ilkel basit bir robot yaptınız, ve ona kendisini kullandırarak biraz daha iyi bir robot yaptırdınız.. ve böyle devam etti..

mustafanar
Автор

Ve yaptığımız her hareketin milisaniyeler içinde işlenmesi akıl almaz

flakmeth
Автор

aklıma bir filmi getirdi, sırf o film için uydurulmuş bir mekanizma olduğunu sanmıştım; filmi hatırlayınca ekliycem

aybikedamla
Автор

muhtemelen dalga konusu olacak ama bir sorum var
programlama dilleri insan dilleri gibi yapılabilir mi(ydi)
bilgisayarın hangi dili algıladığını nereden biliyoruz yani
cehaletim için özür dilerim şimdiden

yagmurkabakci
Автор

ilk yazilim morse codudur insan tarafindan yazilmis belirlenmis bir cod harflere ve cümlerelere dönüsür

dorukbebek
Автор

İnsan beyni de insan üretimi değil mi hocam 😮😮😮

heisec