filmov
tv
İlk Programlama Dili Nasıl Yazıldı
Показать описание
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
.
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
Комментарии