Programlamaya dair temel bir soru: Keşif mi, icat mı?

eheheeh

Hectopat
Katılım
31 Mayıs 2014
Mesajlar
1
Donanımın üretilebilir oluşunu anlayabiliyorum. Taşlara şekil vererek avlanan primitiflerden günümüze kadar gelişerek geldik. Antik Yunan'dan başlayarak, rönesans, aydınlanma çağı, sanayi devrimi derken önünü alamadılar; teknik ve teknoloji fırladı gitti modern dönemlerde. Fakat programlama (matematik de aynı şekilde düşünülebilir sanırım) nasıl mümkün oldu? Yani, cansız bir maddeye canlı varlıkların özelliklerini aktarma aracı olan kod nasıl mümkün oldu? Bütün bu sürecin başındaki adam kim ve nasıl yaptı? Ya da şöyle diyeyim: Her şeyi Allah yarattıysa Allah'ı kim yarattıdan yola çıkarsak, bilgisayarımdaki Windows 10'u yazmak için bir dil kullandılar, (belki birden fazla, o kadar hakim değilim konuya) peki o dili yazmak ya da "icat etmek" için ne kullandılar? Üretilen ilk donanım, artık her neyse o, üzerinde kodlarla oynanabilir olarak vücut bulmadı birden bire, değil mi? Yoksa öyle mi? Keşif mi, icat mı? Şimdiden teşekkürler.
 
#REZ alıyorum bende aynı sorulara cevap arıyordum da.
 
Bir kaç şey buldum. Onları paylaşayım.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

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.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

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
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…