Bir kaç şey buldum. Onları paylaşayım.
Kafa Ayarı'nın ikinci bölümünde ilk elektronik bilgisayardan ve işleyişinden bahsediliyor. Vidyoda ilk bilgisayarın işleyişine dair bahsedilen delikli kartlara ek olarak önemli bir parçada vacuum tube imiş. Eniac'ta vacuum tube ile çalışıyormuş.
Vacuum tube - Wikipedia, the free encyclopedia
Fakat sıcaklık ısınma gibi sorunlardan dolayı pek de kullanışlı değilmiş. Zamanla vacuum tube yerini transistor'lere bırakmış. Vacuum tube gibi aynı mantıkta çalıştığı söylenebilir sanırım. İkisi de açma kapamaya yarayan bir çeşit anahtar aslında.
Açma kapama yazıldığı kadar basit bir mesele değilmiş onu da öğrenmiş oldum. Çünkü işin içine binary code giriyor. 0-1 den oluşan numara sistemi. Kökenine dair ilginç söylentiler var.
History of the Binary System
Üstteki linkin yorumlarında kimisi antik Hindistan'a, kimisi de Antik Mısır'a kadar götürmüş işi. Yine de, aynı sitede yer alan bilgiyi doğru kabul edip Wilhelm Leibniz icat etti diyelim. Gönül isterdi ki matematiksel olarak bu sistemin nasıl çalıştığını da açıklamaya çalışayım ama dört işlemden ötesi yok bende ne yazık ki.
What is Machine Language? Webopedia
Üstteki sitede verilen grafik ise işin sadece bilindik dillerle sınırlı olmadığını gösteriyor. En altta donanımın kendisi, bir üstte machine language, bir üstünde assembly language, bir üstünde high level language ve en üstte de java, c, c++ gibi diller yer alıyor. Bunların ne olduğuna girmeden kısa kesmek istiyorum. İngilizce anlıyorum ama konuşamıyorum gibi. Yazılanlar kafamda bir düşünce oluşturuyor fakat dile dökmekte epey zorlanıyorum. Meraklısı araştırabilir nihayetinde.
Her neyse sonuç olarak: elimizde bir donanım var. O donanım ise aslında temel olarak matematiksel işlem yapıyor. Oynadığımız oyunlar bile aslında matematiksel işlemler bütünü. Delikli kartlar ile girdi sağlanılan sistem, bilgisayardaki machine code sayesinde işleniyordu.
https://en.wikipedia.org/wiki/Machine_code
Elimizde bitler var ve bitleri instruction set oluşturmak için kullanıyoruz. En ilken hali bu oluyor sanırım elektronik bilgisayar yazılımının. Machine code assembly gibi şeyler low-level language olarak geçiyor. Binary ya da hexadecimal sistem anlaşılması daha zor olduğu için, high level language kavramı ortaya çıkmış oluyor. 0 ve 1 lerle uğraşmaktansa, daha anlaşılır akılda kalıcı komutlarla sistemi yönlendiriyorsun.
Yukarıda sorduğum soru da high-level language ile ilgili idi. Onu kastetmişim aslında.
Sonra ise şöyle bir şeye rastladım: Bootstrapping.
Bootstrapping - Wikipedia, the free encyclopedia
"usually refers to the starting of a self-sustaining process that is supposed to proceed without external input" Harici bir girdi olmadan kendi kendini sürdürebilir bir işlemcini çalışma şekli oluyor sanırım. External input'tan kastedilen de delikli kart ve ona benzer donanımlar olsa gerek.
Ayrıca, üstteki linkte şöyle bir şey geçiyor:
"Implementing an interpreter or compiler for language X in language Y. Niklaus Wirth reported that he wrote the first Pascal compiler in Fortran"
Compiler (derleyici) kullanarak Nikalus Wirth Pascal'ı yazabilmiş. Burada compiler Fortran dili oluyor sanırım. Bir dil tasarlayabilmek için bir başka dil gerekiyorsa, buradaki örnekte o dil Fortan, o başka dili (Fortan'ı) nasıl yazdılar? Sonuç olarak, dönüp dolaşıp yine aynı yere geldim...
01111001 01101111 01101011 00100000 01101101 01110101 00100000 01111001 01100101 01110100 01101011 01101001 01101100 01101001 00100000 01100010 01101001 01110010 00100000 01100001 01100010 01101001 00100000 00111111