İlk programlama dili nasıl programlandı?

Ortada herhangi bir programlama dili yokken komutlar nasıl oluştu, nereye kodlandı, nasıl proramlandı. Proramlama dilleride başka bir programlama dii ile yapılıyor.
Kısacası, ilk programlama dili nasıl bulundu.

İnternette pek bi bilgi bulamadım, yardımcı olur musunuz?

Fizik’te bir cisim ya vardır(1) ya da yoktur(0) ve bu bilgisayarlar fizik kanunlarına uydukları için bu bir ve sıfırlar ilk proglamlamada kullanıldı.

Ek:
Quantum fiziğinde ise bir cisim ya vardır(1) ya yoktur(0) ya da olabilir(%50 oran)

2 Beğeni

Ek bilgi : İlk bilgisayarlar delikli kağıt gibi şeylerle programlanılıyordu :slight_smile:

4 Beğeni

Charles Babbage ve Ada Lovelace

1 Beğeni

İşin zor kısmını başkaları çekti, biz kaymağını yiyoruz aslında :grinning:
Bu kitapta ilkel bir bilgisayarda temel görevleri (matematiksel ve mantıksal işlemler) yerine getiren kodların nasıl oluşturulduğu 5 ve 6. bölümlerinde anlatılıyor. Tabi sayısal elektronik de işin içine giriyor. Direk makinenin seviyesi, en dip seviye.

İlk programlama dili olarak, ilk bilgisayar olarak kabul edilen ENIAC’ın programlanması için kullanılan ENIAC programlama dili kabul ediliyor. (Hocamın slaytında öyle yazıyordu)

Bu arada programlama dillerinin bir çoğu birbirlerinin üzerinden türetilmiştir.


Kaynak: Fırat Üniversitesi / Bilg. Müh. Prog. Dilleri Ders Notu (İsim belirtilmediği için bu şekilde yazdım)

5 Beğeni

evet delikli kartı sokunca birşey yazıyordu

1 Beğeni

Bu sorunun yanıtı olarak verilen delikli kartların ne olduğunu sorgulamaya ne dersiniz?

Bilgisayar katmanlardan oluşan bir yapı…
donanım > işletim sistemi > uygulama
temel olarak.

Programlama dediğimiz kavram öncelikle algoritma(lar)ın oluşturduğu bir komut dizisi.

İşletim Sistemi dediğimiz şey de bir programlama ürünüdür bildiğimiz gibi. Donanımı oluşturan transistörlerin 0 ve 1 değerleri alması ile donanım belli işlemleri yapmayı başardı. İşte 0 ve 1 lerden oluşan dizileri kullanarak ilk işletim sistemi inşa edildi. Bu dizileri oluşturan yapıya Makina Dili denmekte. Bellekteki her bir byte üzerinde yaratılan karakterler bir anlam içermekteydi. Bundan sonra derleyici kavramı gündeme geliyor.

Bir işletim sistemi olmaksızın delikli kartların oluşturulması ya da yorumlanması mümkün olamazdı kanımca. Netice itibari ile ilk dil makina dili olmalı diye düşünüyorum. Ama bahsettiğim bugünkü Assembly dili değil.

1 Beğeni

Pek çok kişi cevap yazmış ama net açıklayıcı bir cevap göremedim.Herneyse programlama dilleri ile normal konuşulan diller arasında esasen pek bir fark yok.Programlama dilleri makinelere nasıl iş yapacaklarını anlatmanın bir yolu.Programlama dilleri compiler(derleyici veya python dili için yorumlayıcı) olmadan direkt olarak makinenin anlayacağı komutlar üretemez.

Burda makinenin anlayacağı kod önemli bir nokta her bilgisayar sistemi içerisinde bir CPU(işlemci) barındırır ve bu CPUlar farklı mimarilere sahiptir.CPU tasarlandığı mimariye bağlı olarak belli işlevlere sahiptir.Mesela X86 mimarisi ARM mimarisi gibi her mimari kendine has işlemci komut setlerine sahiptir(İnstruction Set:https://en.m.wikipedia.org/wiki/X86_instruction_listings).

Komutlar hali hazırda işlemci içinde tanımlı fonksiyonlar olarak düşünülebilir.Diğer karmaşık komutlar bu komutlar kullanılarak türetiliyor.

Programlama dili olarak örneğin C dilini kullandığınızda oluşturduğunuz kod C compiler tarafından X86 mimarisin sahip olduğu komut setleri ile çalışacak formata dönüştürülmüş oluyor.Aynı C kodunu ARM işlemcili bir sistemde çalıştırmak için bu defa ARM mimarisi altında bir C derleyecisine ihtiyaç duyacaksınızdır.

İlk programlama dili dediğiniz şey aslında temel ilk işlemcinin sahip olduğu elektronik devrenin yapabildiği işlevlerdir.Bu komutlar işlemciye 1101010 gibi binary olarak girilir daha sonra bu işi kolaylaştırmak için bu komutları insanlarında anlaması için basit keywordlet kullanılarak yazılan Assembly dili geliştirilmiştir ama tek bir Assembly dili yoktur.Assembly bilmek demek hedef işlemciyi ve onun sahip olduğu tüm komutları bilmek demektir.Yani özünde bu işin temeli elektroniktir.Elektronik kullanılarak bazı aritmetik ve mantıksal işlemleri gerçekleştirebiliyoruz.İşlemci dediğimiz şey bunun ölçeklenebilir ve tekrar tekrar programlanabilen halidir.

Yanlış anlattığım bir kısım varsa düzeltebilirsiniz.

https://youtu.be/QZwneRb-zqA ayrıca şu videoya bakmanızı tavsiye ederiö

4 Beğeni

Gayet güzel anlatmışsınız. Sadece bir kaç noktalama hatası var. :slight_smile:

2 Beğeni

Zihninizde bir şeylerin canlanıp devamının gelebilmesi için şu filmi izlemenizi öneririm.

Enigma (The Imitation Game) Türkçe dublaj 1080p Full HD izle (filmmodu.org)

2 Beğeni

Eğer bunu bana sorsaydın şunu anlatırdım:
Bilgisayar ekranında gördüğünüz grafikler dahil, bütün matematiksel işlemler, 4 işlem uzayından türetilebilir. İnsanlar ilk zamanlarda, bunu bildikleri için, 1-0(5 volta çok yakın bir elektriksel potansiyel ile, 0 volta çok yakın bir elektriksel potansiyel) arasında bütün girdi ve çıktı sonuçları kodlanabilir olduğunu öğrendi.

Yani 10luk tabanda yaptığınız bir işlemi, 2’lik tabanda da yapabilirsiniz. Ama neden? Çünkü 2’lik tabana çevirilebilen "bit"lerle dolu hafızada, elektronların çok yüksek hızından faydalanarak, çok ama çok sayıda işlemi, çok ama çok yüksek bir hızla yapabilmenizi sağlar.

Bu yüzden ilk bilgisayarlar, insan oğlunun ilkel doğası gereği, Amerika’da, Ağır Silahların balistik hesaplamalarında kullanılmıştır.(Aslında Sovyetlerin denemesi daha önceydi ama, yeterince bilgisayar sayamayız.)

Fakat bir süre sonra, bilgisayarlar hesaplamaların yetersiz kaldığı, giriş ve çıkış birimleri ile etkileşimi artan bir seviyede “işlem hızı ve kullanım pratikliği” neticesinde "kompanent"lerini artırdı.

Artık ses ve görüntüyü eş zamanlı işlemek isteyen, ve her veri çeşidini hesaplamak ve bu verilere uygun bir “hafıza”, “işlemci” icat etmek icap etti.

Bu da daha fazla “cpu”, “kaydedici” ve “ram” gibi birimlerin başkalaşmasına ve basit işlemci-kaydedici-ram temelindeki yapının gelişmiş grafik işlem birimlerine, paralelleşmiş devrelere, içinde giriş ve çıkışları farklı şekillerde düzenleyen işlemciler barındıran giriş-çıkış birimlerine kadar hızla evrilmiş bir yapıya dönüştü.

Bu süreç içerisinde bu kadar farklı elektronik birimin belirli bir "iş"i yapması için, birden fazla aynı “işlemleri”, ama farklı amaçlarla yapabilen farklı birimlerin organizasyonu için makine dilinin ötesinde ortak işaret dilleri gelişti(Tabi bunlar sürecin en başından beri gelişmeye başladı). İlk zamanlarda işlem kapasitesini arttırmak, dolaylı işlemleri çoğaltmak ve nihayetinde grafik arayüzüne çıktı verme özelliği geliştirilecek şekilde planlanan bu mnemonic diller zamanla özelliklede bu süreçte aktif rol alan kişilerin “kişisel hırsları”, “iç çekişmeleri” ve “sınai” görüşleri dolayısıyla çoğaldı, genişledi. Bu bilgisayar mimarisine genel olarak hakim olsalar da, çeşitli alanlarında uzmanlaşmış kişilerin kendi yollarına giderken her birinin “ayrı birer mnemonic” diller geliştirmesine sebep oldu.(Aslında bu iyi de oldu, tekleşme kötüdür, doğa çeşitlenerek varolur.) Ve aslında J.P.Eckert ve J.Mauchly’ın nasıl Noumenn’dan ayrıldığı ve olan cinayetlerden(Seymour Cray, o zaman dünyadaki tek süper bilgisayara karşı birini daha yapmak istiyordu, ama trafik kazasında öldü), düşünürsek bugüne doğru, bu hep birkaç akıllı ve dürüst amaçlı insanın ticari amaçlar uğruna kurban edile edile insanlığa yol açtığı bir maceradır aslında(Ah youtube kanalımı açınca uzun uzun anlatacağım)).

Derken zamanla birkaç varlıklı kişinin büyük fiziki yer kaplayan bilgisayarları alıp kullanması için üretilen bilgisayarlar, nihayetinde Steve Jobs ve Steve Wozniak öncülüğünde üretilen kullanım, ucuzluk ve küçüklük bakımından, günümüz bilgisayarlarının ilk örneklerinden Apple 2 ile bu süreç “piyasa” anlamında tamamlandı. Fakat bu aynı zamanda “iletişim” bilimini de geliştirdi. Ve çok stratejik öneme sahip “haberleşme” teknolojileri ve bilgisayar birlikteliği hızla ilerlerken bu sırada "tekeliyet"e isyan eden "phreaker"lar, “hackerlar” çıkmaya başladı. Çünkü İnternet de ortaya çıktı. Çünkü bir savaş stratejisi olarak hesaplamaların her bölgede işliyor olması orduların çıkarınaydı. İnternet ancak "hacker ve phreaker"ların kontrol edilemez sayıya ulaştıktan sonra çaresizce ortaya çıkmak zorunda kaldı. Birileri size masal anlatsa da, bütün büyük kaşiflerin insanlık için ortaya koydukları şeyler, hep bir kaç dahi ve kaşifin emeği ve mücadelesiyle ortaya çıkmıştır. Neyse…

Aslında bildiğiniz internetten önce de yerel bağlantıları kurulmuş büyük ağlarla yönetilen bilgisayarlar vardı. Ve bunlar kendi aralarında iletişim kurarlarken, kendi güvenlikleri gereği ve bunun yanında farklı firmalardan üretilen farklı protokol ve dil mimarisindeki bilgisayarlar arasındaki iletişimi de sağlamak için, ortak kullanılan scriptler geliştirdiler. Aslında assembly de bir programlama dilidir. Mnemonic diller programlama dilleridir. Sadece bu süreç içerisinde geliştirilirken, daha kapsamlı işleri “grup grup” yapan insanların farklı amaçlara yönelik “işaretleme dilleri” oluştururken nihayetinde gömülü bir dil gibi kaldı. Ve daha büyük gruplar, farklı firmalar tarafından farklı standartlarda üretilen bu mimarileri birleştiren daha genel bir standartlar oluştu, bunlar da programlama dillerini ortaya çıkarttı. Aslında teknik olarak bakıldığında programlama dilleri birer “script” olarak düşünülüp ortaya çıkmıştı. Fakat o kadar hızlı ve çeşitli bir gelişim oldu ki, bu 60 binleri bulan bilgisayar için tanımlanmış “çevirici diller”, zamanla daha kapsamlı ve özelleşmiş işletim sistemleri oluşturmak için kullanılmaya başlandıkça, bu standartların üzerine oturtulmuş çevirici diller üzerinden yükselen Programlama Dilleri ortaya çıkmış oldu. Ada, Fortran felan diyorlar ama, bu dilleri geliştiren adamların tartışmalarına bakılırsa, Von Neumann’dan beri derleyici olarak bildiğiniz dillerle yazmaya çoktan alışmış o sektörün kurucuları. Böyle olmasaydı, ayrılan hemen bir “İşletim sistemi” kurmaya kalkar mıydı?

Yani aslında gerçekler, hep biraz daha eskidir.

Yani bugün makine dilinde işleyen işlemleriniz size sunulmak için önce çevirici diline(yani Assembley denilen dile) dönüşüyor. Sonra da sizin işletim sisteminizin kendi diline dönüşüyor ve o işletim sisteminin dilinde işleyerek size ekranda hizmet sunuyor. Yani makine(0,1) kodundan, assemblye(mnemonic) oradan işletim sistemi diline(MsDos, Linux) vs.

Aslında bu işletim sistemlerinin dili, daha doğrusu bunlar aslında işletim sistemi denen bilgisayarınızı kullanmanızı sağlayan arayüz programını da yapan dil olarak, çoğunda ilkel Assembley dillerinin kodlarını görürsünüz(ls, lw, add vs.) ama işlemcide çalışma biçimi açısından farklılaşmış bir hizmet sunduğu için o artık “Assembly” üzeri bir dildir, Programlama Dilidir.

Ama bugün, artık tamamen farklılaşmış, kendine özgü bir "string"lerle ifade edilen mesela bir add derken diğeri sum diyen programlama dilleri ise, çoğu bu ilkel assembly’den çevirecek kadar çalışkan değildir(C dili gibi mesela), çoğu bazı işlemleri baştan yazmak yerine, uğraşmadan tıpkı acemi programcıların hazır kütüphaneleri kullanmasındaki gibi kütüphanelerini oluşturmuş C gibi dillerden yararlanarak bunu yapar. Mesel Python böyledir. İşte böyleleri de, Çeviricinin Üzerinde değil, bir başka dilin de üzerinde olduğu için “Yorumlayıcı” dil olur. Ama bunlar iki “arayüzey” atlattığı için, çevirici üzerinde oturan dilden daha yavaş çalışırlar. Genelde bu dilleri oluşturanlar, bu hız konusunu çözmek için de bazıları en azından programlama dilinin “hafızada yer kaplama özelliklerini” çeviriciden kendi kodlamıştır(mesela javadaki gibi), bazıları da sadece bilimsel araştırmalarda bu dillerin kütüphanesinden doğrudan yararlanmak için aynı şekilde davranmıştır(mesela python’un numpy kütüphanesi).

Ama bu iş çok iç içedir he.

İlk programlama dilini söylemek buyüzden iddialı olur. Amerikan Derin Devleti, Nadyo Komonaçi, Fenerbahçeli Cemil…

Kim bilir…

Asıl soru bu değil.

Son programlama dilini kim yazacak?

Asıl soru bu.

(Şaka lan şaka bu cümleyi sırf şakşak geçmek için kurdum. Boş verin olum, kim kurdu, kilimcinin köroğlu. Meraklıysanız tarihini okuyun.)

Öpüyorum.

2 Beğeni

Annem böyle pasta yapmayı nereden öğrendi

Nihat Doğan Mabel Matiz’in şarkısını niye istiyor?