• Programlama dillerinin gelişim tarihi. Programlama Dillerinin Kısa Tarihi Birinci Programlama Dili Yılı

    Uygulanacak ilk yüksek seviyeli bilgisayar programlama dili FORTRAN'dı (FORMmula TRANslator). 1954 ve 1957 yılları arasında bir grup IBM Corporation programcısı tarafından oluşturuldu. Kuruluşundan birkaç yıl sonra Fortran'ın ticari satışları başladı - ondan önce makine kodları veya sembolik birleştiriciler kullanılarak gerçekleştiriliyordu.

    Her şeyden önce Fortran, üzerinde hesaplamaların yapıldığı bilim ve mühendislik camiasında yaygınlaştı.

    Günümüzün Fortran'ının ana avantajlarından biri, içinde yazılan çok sayıda program ve rutin kütüphanedir. Bu dilin binlerce paketinde karmaşık integral denklemlerin çözümü, matris çarpımı vb. için paketler bulabilirsiniz. Bu paketler onlarca yıldır oluşturuldu - günümüze olan ilgilerini kaybetmediler. Kitaplıklarının çoğu iyi belgelenmiş, hata ayıklanmış ve yüksek verimliliğe sahip, ancak sürekli olarak Fortran kodlarını otomatik olarak modern yazılıma dönüştürmeye çalışıyorlar.

    Fortran'ın tanıtımının tarihi

    Fortran adında etkili bir alternatif dilin geliştirilmesinden sonra bilgisayar topluluğu yeni ürüne şüpheyle yaklaştı. Çok az kişi Fortran'ın yardımıyla programlamanın daha verimli ve daha hızlı olacağına inanıyordu. Ancak zamanla bilim adamları dilin yeteneklerini takdir ettiler ve onu yoğun yazılım hesaplamaları yazmak için aktif olarak kullanmaya başladılar. Fortran, her türlü verinin kapsamlı bir şekilde toplanmasının büyük ölçüde yardımcı olduğu teknik uygulamalar için özellikle uygundu.

    Modern Fortran, yeni yazılım teknolojilerinin ve program bilgi işlem mimarilerinin etkin bir şekilde kullanılmasını mümkün kılan yeteneklerle desteklenmiştir.

    Fortran'ın çarpıcı başarısının ardından Avrupalı ​​şirketler IBM'in bilgisayar endüstrisine liderlik etmeye başlamasından korkmaya başladı. Amerikan ve Alman toplulukları evrensel bir programlama dili geliştirmek için kendi komitelerini oluşturdular, ancak daha sonra tek bir komite altında birleştiler. Uzmanları yeni bir dil geliştirdi ve buna Uluslararası Algoritmik Dil (IAL) adını verdi, ancak ALGOrithmic Language hızla yeni ürün için yaygın olarak kullanılan isim haline geldiğinden, komite IAL'in resmi adını ALGOL olarak değiştirmek zorunda kaldı.

    Gelişimin başlangıcı

    Montaj dili

    Etkili bir programa sahip olmanın gerekli olduğu durumlarda makine dilleri yerine bunlara yakın makine yönelimli diller (birleştiriciler) kullanılır. İnsanlar makine komutları yerine anımsatıcı komutlar kullanır.

    Ancak montajcıyla çalışmak bile oldukça karmaşıktır ve özel eğitim gerektirir.

    Örneğin, Zilog Z80 işlemci için, 00000101 numaralı makine talimatı, işlemciye B kaydını birer azaltma talimatını verir. Assembly dilinde bu aynı zamanda DEC B olarak da yazılacaktır.

    Yapılandırılmış programlama

    Bir sonraki adım 1954'te ilk üst düzey dil olan Fortran'ın yaratılmasıyla atıldı. FORTRAN - FORMÜL ÇEVİRMENİ). Yüksek seviyeli diller, konuşulan dildeki bazı kelimeleri ve ortak matematiksel sembolleri kullanarak doğal dilleri taklit eder. Bu diller insanlar için daha uygundur, onların yardımıyla birkaç bin satıra kadar uzunlukta programlar yazabilirsiniz. Ancak kısa programlarda kolayca anlaşılırken, daha büyük programlarda dil okunmaz hale geldi ve yönetilmesi zorlaştı. Bu sorunun çözümü yapısal programlama dillerinin icadıyla geldi. yapılandırılmış programlama dili ALGOL (1958), Pascal (1970), C (1972) gibi.

    Yapılandırılmış programlama, kesin olarak tanımlanmış kontrol yapılarını, program bloklarını, koşulsuz atlamasız (GOTO) talimatları, kendi kendine yeten alt rutinleri, yineleme desteğini ve yerel değişkenleri içerir.

    Bu yaklaşımın özü, bir programı bileşen öğelerine ayırma yeteneğidir.

    Ayrıca oluşturuldu fonksiyonel(uygulamalı) diller (Örnek: Lisp - İngilizce. LİSTE İşleme, 1958) ve zeka oyunu diller (örnek: Prolog - İngilizce) LOGic'te PROgramlama, 1972).

    Her ne kadar yapısal programlama kullanıldığında olağanüstü sonuçlar üretse de, program belirli bir uzunluğa ulaştığında bile başarısız oluyor. Daha karmaşık (ve daha uzun) bir program yazmak için programlamaya yeni bir yaklaşıma ihtiyaç vardı.

    OOP

    Sonuç olarak, nesne yönelimli programlamanın ilkeleri 1970'lerin sonu ve 1980'lerin başında geliştirildi. OOP, yapısal programlamanın en iyi ilkelerini, temelleri OOP olarak adlandırılan güçlü yeni kavramlarla birleştirir. kapsülleme, polimorfizm Ve miras.

    Nesne yönelimli dillere örnekler: Object Pascal, C++,

    OOP, bir sorunu bileşenlerine ayırarak ve her biriyle ayrı ayrı çalışarak programları en iyi şekilde düzenlemenize olanak tanır. Nesneye yönelik bir dilde, belirli bir sorunu çözen bir program, esasen dünyanın bu sorunla ilgili bir bölümünü tanımlar.

    Bağlantılar

    • Programlama ve hesaplamanın tarihi

    Wikimedia Vakfı. 2010.

    Diğer sözlüklerde “Programlama Dillerinin Gelişiminin Kısa Tarihi” nin ne olduğuna bakın:

      Programlama dili, program yazmak için tasarlanmış resmi bir işaret sistemidir. Bir program genellikle uygulayıcının (örneğin bir bilgisayarın) anlayabileceği bir biçimde bazı algoritmaları temsil eder. Programlama dili seti belirler... ... Vikipedi

      Ruby Anlambilimi: çoklu paradigma Yürütme türü: yorumlayıcı Ortaya çıktığı yıl: 1995 Yazar(lar): Yukihiro Matsumoto Son sürüm: 1.9.1 ... Wikipedia

      Ruby Anlambilimi: çoklu paradigma Uygulama türü: tercüman Çıkış tarihi: 1995 Yazar(lar): Yukihiro Matsumoto Son versiyon: 1.9.1 ... Wikipedia - (Haykakan Sovetakan Socialistakan Hanrapetutyun) Ermenistan (Hayastan Ermenilerin Ülkesi). I. Genel bilgi Ermeni SSR'si 29 Kasım 1920'de kuruldu. 12 Mart 1922'den 5 Aralık 1936'ya kadar Transkafkasya Federasyonu'nun bir parçasıydı (Bkz.... ...

      - (Lietuvos Taribu Sosyalistine Cumhuriyeti) Litvanya (Lietuvos). I. Genel bilgi Litvanya SSR'si 21 Temmuz 1940'ta kuruldu. 3 Ağustos 1940'tan beri SSCB'nin bir parçası. SSCB'nin batı Avrupa kısmında yer almaktadır. Kuzeydeki sınırlar... ... Büyük Sovyet Ansiklopedisi

      Atmosferde test edilmek üzere Buran OK GLI örneği (BTS 002). Havacılık ve uzay salonu MAKS, 1999 ... Wikipedia

    Not 1

    İlk programların çalışması için bilgisayar cihazının ön paneline anahtar anahtarların takılması gerekiyordu. Doğal olarak bu yöntemi kullanarak yalnızca küçük programlar oluşturmak mümkün oldu. Tam teşekküllü bir programlama dili yaratmaya yönelik ilk girişimlerden biri, 1943-1945 yılları arasında Alman bilim adamı Konrad Zuse tarafından yapıldı. Plankalkul dilini geliştirdi. Plankalkul çok umut verici bir dildi ve aslında yüksek seviyeli bir dildi, ancak savaş sırasında doğru pratik uygulama sağlanamadı ve açıklaması yalnızca 1972'de yayınlandı.

    Makine kodu. Montajcı

    Programlama dillerinin tarihi, makine dilinin gelişmesiyle başlar: mantıksal sıfır ve bir dili. Bu dili kullanarak yazmak çok zor ve sıkıcıydı.

    1940'ların sonlarında programcıların işini kolaylaştırmak için. Assembly dili geliştirildi. Herhangi bir komutu ifade eden ikili rakamlar yerine kısa kelimeler veya kısaltmalar yazıldı. Programcılar, montaj dilini düşük seviyeli bir programlama dili olarak görürler çünkü en düşük seviyeli dil olan makine diline yakındır. Assembly dilinde yazılan programlar doğrudan belirli bir işlemcinin özelliklerine bağlıdır, bu yüzden buna makine yönelimli dil denir.

    Assembly dilinde program yazmak oldukça zor bir iştir ve bilgisayar cihazları bilgisi de gereklidir. Yine de montajcı programları en etkili ve verimli olanlardır.

    Algoritmik diller

    Programlamanın gelişimi sırasında, doğal dillere benzeyen ve kişinin doğrudan makine komutlarıyla çalışmasına izin vermeyecek yeni, daha gelişmiş programlama dilleri geliştirme ihtiyacı ortaya çıktı. Bunlara üst düzey diller denmeye başlandı. Yüksek seviyeli diller algoritmaları açıklamaya odaklanır, bu yüzden algoritmik diller olarak adlandırılırlar. Bu tür dillerin avantajı, belirli bir bilgisayardan daha fazla netlik ve bağımsızlıktır.

    Bilgisayar tarafından yalnızca makine dili tanındığından, algoritmik dilde yazılmış bir programın çalıştırılmadan önce özel bir program - bir çevirmen - tarafından bu dile çevrilmesi gerekir. Çevirmen, algoritmik dilin tüm kurallarını ve çeşitli yapılarını makine diline dönüştürme yöntemlerini içerir. İki tür yayın vardır:

    • Derleme, program talimatlarının yalnızca tüm program metninin çevirisi derlendiğinde yürütüldüğü bir program yürütme yöntemidir.
    • Yorumlama, program talimatlarının çevrildiği ve hemen yürütüldüğü bir program yürütme yöntemidir.

    Not 2

    Algoritmik bir dilde yazılan programların avantajı, yazmanın göreceli basitliği, okunabilirliği ve düzeltme olasılığı nedeniyle programla çalışmanın basitleştirilmesidir. Dezavantajları şunlardır: yayın için ek süre ve hafıza.

    Yapılandırılmış programlama

    1954 yılında ilk üst düzey dil derleyicisinin geliştirilmesine başlandı. İki yıl sonra Fortran dili ortaya çıktı (FORmula TRANslator - “formül çevirmeni”). Dil, geliştirmeyi büyük ölçüde kolaylaştıran özellikler içeriyordu, ancak Fortran'da programlama kolay bir iş değildi: kısa programlarda anlaşılması kolay olsa da, büyük programlara gelindiğinde dil okunamaz hale geliyordu. Buna rağmen dil oldukça başarılı oldu ve birçok versiyonu yayınlandı.

    Yapılandırılmış programlama dillerinin geliştirilmesinden sonra sorunlar çözüldü: program blokları oluşturma yeteneği, bağımsız alt programlar, özyineleme ve yerel değişkenler için destek ve koşulsuz bir atlama operatörünün (GoTo) yokluğu tanıtıldı. Böylece bu tür diller, bir programı kurucu unsurlarına bölme yeteneğini desteklemeye başladı.

    On yıl boyunca oldukça fazla sayıda yeni dil yaratıldı:

    1. Algol (1958) ayrı bloklardan oluşan algoritmalar yazmayı amaçlıyordu;
    2. Yönetim ve iş alanlarında toplu veri işleme için Cobol (1959) kullanıldı;
    3. Basic (1965) basit programlar yazmanıza izin verdi ve programlamanın temellerini öğretmek için kullanıldı.

    Oluşturulan dillerin çok azı yapılandırılmıştır. Özel diller de oluşturuldu: Lisp, Prolog, Forth, vb. Adını bilim adamı Blaise Pascal'dan alan ve hem öğrenme hem de değişen karmaşıklıktaki problemleri çözmek için kullanılan Pascal dili (1970) özellikle dikkate değerdir. Pascal programlarının okunması kolaydı, hataları hızlı bir şekilde bulup düzeltmenize olanak tanıyordu ve iyi yapılandırılmıştı. Yukarıdakilerin hepsi yaygın kullanımına yol açmıştır ve bugün bile eğitim kurumlarında aktif olarak kullanılmaktadır.

    1972 yılında programlamada başarılı bir adım olan C dili tanıtıldı. Dil, birçok dilin avantajlarını birleştirdi ve çok sayıda farklı yeniliğe sahipti. Çalışmasının geniş olanakları, yapısı ve göreceli basitliği, dilin hızla tanınmasını ve ana dillerden birinin yerini almasını sağladı.

    Yapılandırılmış programlamanın ortaya çıkışı harika sonuçlar getirdi ancak uzun ve ciddi programlar yazmak hâlâ zordu.

    Nesne yönelimli programlama (OOP)

    1970'lerden bu yana Verilerin ve bunların işlenmesine yönelik rutinlerin resmi olarak ilişkili olmadığı prosedürel programlamanın gelişmesinin bir sonucu olarak ortaya çıkan nesne yönelimli programlamanın (OOP) temelleri atıldı.

    OOP aşağıdaki temel kavramları içerir:

    • Sınıf– henüz var olmayan bir nesnenin modeli. Aslında bir nesnenin yapısını tanımlayan bir diyagramdır.
    • Bir obje– bir sınıfın örneği, bir sınıfın örneği oluşturulduğunda ortaya çıkan, bir bilgi işlem sisteminin adres alanındaki bir varlık.
    • Soyutlama– bir nesneye, sınırlarını açıkça tanımlayan ve onu diğer tüm nesnelerden ayıran özellikler atamak. Temel fikir, bileşik veri nesnelerinin kullanılma şeklini, bunların daha basit nesneler biçimindeki uygulanma ayrıntılarından ayırmaktır.
    • Kapsülleme– nesne verilerini programın geri kalanından gizlemek ve nesnenin bütünlüğünü ve bağımsızlığını sağlamak için özellikleri (verileri) ve yöntemleri (rutinleri) bir sınıfta birleştirmek (nesne özelliklerini değiştirmek yalnızca özel sınıf yöntemleriyle mümkündür).
    • Miras– yeni özelliklerin ve yöntemlerin eklenmesiyle mevcut bir sınıfa (veya sınıflara) dayalı yeni bir sınıfı tanımlamanıza olanak tanıyan bir dil mekanizması.
    • Polimorfizm– Bir sistemin, türü ve iç yapısı hakkında bilgi edinmeden aynı arayüze sahip nesneleri kullanabilme yeteneği.

    Not 3

    1967'de, nesne yönelimi ilkelerinin önerildiği ilk programlama dili olan Simula dili ortaya çıktı. Nesnelerle, sınıflarla, sanal yöntemlerle çalışmayı destekledi, ancak tüm bu özellikler çağdaşları tarafından yeterince takdir edilmedi. Ancak bu kavramların çoğu Alan Kay ve Dan Ingalls tarafından, yaygın olarak kullanılan ilk nesne yönelimli programlama dili haline gelen Smalltalk diline dahil edildi.

    Şu anda nesne yönelimli paradigmayı uygulayan uygulamalı programlama dillerinin sayısı diğer paradigmalara göre en fazladır. OOP kavramını destekleyen ana diller: C++, C#, Object Pascal (Delphi), Java, vb.

    İnternet Geliştirme

    WWW (World Wide Web) teknolojisinin gelişmesiyle birlikte internet çok popüler hale geldi. İnternet ile çalışmayı, web sitesi tasarımını, kaynaklara erişimi vb. sağlamak için çok sayıda yardımcı dil oluşturulmuştur.

    Sadeliği ve diğer platformlara kolay taşınabilirliği ile öne çıkan yorumlanan dil Perl yaygınlaşıyor. Değişken karmaşıklığa sahip uygulamalar ve CGI komut dosyaları yazmak için tasarlanmıştır. Java dili de yaygın olarak kullanılmaktadır ve İnternet'in gelişmesinde ve işleyişinde önemli bir rol oynamaktadır.

    1970 lerde Veritabanlarına erişmek ve onlarla çalışmak için oluşturulmuş yapılandırılmış bir sorgu dili olan SQL dili ortaya çıktı.

    Web sitesi sayfalarına kod yazmak için, metin ve grafikleri işaretlemeye ve biçimlendirmeye yönelik komutlar içeren hiper metin biçimlendirme dili HTML geliştirilmiştir. Siteyi daha çekici ve işlevsel hale getirmek için aşağıdakiler kullanılır:

    • Kullanıcının web tarayıcısında çalışan ve esas olarak sitenin görünümünü iyileştirmek ve küçük sorunları çözmek için kullanılan JavaScript komut dosyaları.
    • Sunucu tarafında çalışan ve önceden işlenmiş bilgileri kullanıcının tarayıcısına gönderen PHP komut dosyaları. Dinamik HTML sayfaları, ziyaretçi defterleri oluşturmak, forumları ve anketleri sürdürmek için kullanılırlar.
    • Öncelikle Perl, C/C++ ile yazılan CGI betikleri sunucu tarafında yürütülür ve belirli kullanıcı eylemlerine bağlıdır. Dinamik HTML sayfaları, ziyaretçi defterleri oluşturmak, forumları ve anketleri sürdürmek için PHP komut dosyaları gibi kullanılırlar.

    Bu metinle programlama dillerinin gelişim tarihi hakkında bir dizi makaleye başlamak istiyorum. Bu koleksiyonun uyarlanmış bir versiyonudur.

    Programlama 20. yüzyılın 50'li yıllarından çok önce ortaya çıktı. İlk fikirler, haklı olarak bilgisayarın babası olarak kabul edilen Charles Babbage (1792-1871) tarafından dile getirildi. Transistörler, mikro devreler ve monitörler hakkında hiçbir bilgisi yoktu, ancak tüm bilgisayarların üzerine inşa edileceği temel prensipleri oldukça doğru bir şekilde tanımladı. Fikir Kontes Ada Lovelace (1815-1852) tarafından geliştirildi. Tarihteki yeri hala pek çok tartışmaya neden oluyor, ancak kesin olan bir şey var ki o da aslında ilk ünlü programcı olanın Ada olduğuydu. Çalışmaları sayesinde makineleri etkin kullanmanın yolunun kodlarda anlatılan algoritmalardan geçtiği ortaya çıktı.

    Babbage'ın Analitik Motoru

    Ancak programlama bilgisayarlardan bağımsız olarak gelişemez. Onlar olmadan, fikirlerin kalitesi ne olursa olsun, sadece akıl oyunları ve soyutlama olur. Bu nedenle, 1950'lere kadar programlama dilleri, genellikle son derece uzmanlaşmış ve hedef cihazla birlikte yok olan bir dizi makine talimatıydı.

    Sorunun özü

    Bugün bilgisayar mimarisi hakkında hiçbir şey bilmenize gerek yok; çoğu programcı için yalnızca dil önemlidir, geri kalan her şey ikincildir. 1950'lerde her şey farklıydı - temel makine kodlarıyla çalışmak zorundaydınız ve bu neredeyse bir havya ile programlamayla aynıydı.

    Diğer bir sorun da, dillerin geliştirilmesinin, bilgisayarların oluşturulmasında doğrudan yer alan kişilerin - öncelikle mühendislerin ve yalnızca programcıların - sorumluluğunda olmasıydı. Bu yüzden dili bir dizi işlem numarası ve hafıza hücresi olarak temsil ettiler. Kabaca konuşursak, şöyle görünüyordu:

    01 x y – y bellek hücresinin içeriğini x hücresine ekleme;

    02 x y – çıkarma işlemine benzer prosedür.

    Sonuç olarak program kodu sonsuz bir sayı dizisine dönüştü:

    01 10 15 02 11 29 01 10 11…

    Bu tür bir kod bugün size dehşet verici gelebilir, ancak 1950'lerin başında bu bir normdu.


    1940'lardan kalma bilgisayar

    Programcıların makine komutlarını uzun süre öğrenmeleri, ardından kodu dikkatlice yazmaları ve tamamlandıktan sonra birkaç kez daha kontrol etmeleri gerekiyordu - hata riski yüksekti. Program yazacak personel eksikliği nedeniyle makinelerin gelişimi sekteye uğradığında sorunlar ortaya çıktı. Acil çözüm gerekiyordu.

    İlk seçici

    Çözüm açıktı: Operasyonların dijital tanımlarını harflere çevirmek gerekiyordu. Yani “01 10 15” yerine “EKLE 10 15” kullanın. Bu, karakterlerin makine talimatına ek olarak çevrilmesini gerektiriyordu, ancak sorun göz önüne alındığında, fedakarlık minimum düzeydeydi.

    Çözüm o kadar açık çıktı ki, Assembly dilini ilk kimin icat ettiği kesin olarak bilinmiyor. Büyük olasılıkla aynı anda birkaç yerde göründü. İsmin ve popülerleşmenin sorumlusu “Dijital bilgisayar için programların hazırlanması” kitabının yazarları Wilkes, Wheeler ve Gill olarak kabul ediliyor. Assembler adının, süreci oldukça doğru bir şekilde tanımlayan İngilizce assemble - montaj, montaj kelimesinden geldiğini tahmin etmek zor değil. Daha sonra semboller yalnızca en basit işlemleri değil, aynı zamanda kodun okunabilirliğini büyük ölçüde kolaylaştıran adreslemeyi de ilgilendirmeye başladı.

    Şimdi bu basit bir çözüm gibi görünüyor, ancak uygulama karmaşık bir süreçti; yazışma tablolarının oluşturulmasını ve her hafıza hücresine bir atama yapılmasını gerektiriyordu. Bu üç temel şeye yol açtı:

    • Sembolik değişken veya basitçe değişken kavramının ortaya çıkışı.
    • Semboller, işlemler ve hafıza hücreleri arasındaki yazışmaları bulabileceğiniz tablolar oluşturmak.
    • Programlamanın bir sanata dönüşebileceğini anlamak.

    Bu, dil alanında bir atılımın katalizörü oldu.

    Derleyiciler ve önyargılar

    Birleştirici basit dönüşümler oluşturmayı mümkün kıldı. Örneğin 01'in ADD'ye aktarılması. Makro birleştirici bu fikri genişletti ve programcılara birden fazla talimatı tek bir talimatta daraltma yeteneği verdi. Örneğin, bir programda sürekli olarak bir bellek konumuna bir değer ekliyorsanız ve bu değerin dolu olup olmadığını kontrol ediyorsanız, tüm bunları bir INCRT makrosuna yazıp onu yalnızca değişkenleri değiştirerek kullanabilirsiniz. Aslında makro birleştiriciler ilk yüksek seviyeli diller haline geldi.

    Ancak bu yaklaşımda önemli bir sorun vardı; her seferinde kod oluşturmadan önce temel işlemleri makrolara daraltmak gerekiyordu. Programcıları sürekli kopyalamaktan kurtaracak bir araca ihtiyaç vardı. Derleyici bu şekilde ortaya çıktı.

    Artık derleyici sayesinde kesinlikle herhangi bir sözdizimine sahip bir programlama dili oluşturabileceğimizi biliyoruz, asıl önemli olan kodumuzu makine komutlarına doğru şekilde çevirmesidir. Ve o zamanlar uzmanlar üst düzey dillere şüpheyle yaklaşıyorlardı. Bu kısmen bilgisayarların performansından kaynaklanıyordu; söz dizimini karmaşık dönüşümlerle basitleştirmek pahalıydı ve teknolojik ilerlemeyi birkaç yıl geriye götürebilirdi. Bunun bir nedeni de duygulardı; makine komutlarının biçiminden uzaklaşmak, süreçler üzerindeki kontrolü kaybetmek zordu. Programcılar, derlemeden sonra çalıştırılabilir komutları anlayamayacaklarından ciddi şekilde korkuyorlardı. Bugün makine kodunun nasıl göründüğü umurumuzda değil, ancak o zamanlar önemli bir konu gibi görünüyordu.

    Bununla birlikte, derleyici durumdan çıkmanın tek yolu haline geldi, ancak burada başka bir zorluk ortaya çıktı - aritmetik ifadeler. Bunların yürütülmesi, makinenin kodu okuma şekliyle aynı değildir. Okul derslerinden “2+3*5” ifadesindeki hesaplamaların sırasını biliyoruz ama makine kodu tek yönde okuduğundan cevap yanlış olacaktır. Evet, yukarıdaki örnek bir makro oluşturularak çözülebilir ancak “(2 + 3 * 5 + 4/6) * 10 + 16- (14 + 15) * 8” seviyesindeki karmaşık ifadeler temelde farklı bir yaklaşım gerektiriyordu.

    Yeni bir oluşum dönemi

    Fortran'ın yaratıcısı John Backus, yığın analizi için bir algoritma bulmayı başardı. 1954 yılında bunun üzerinde çalışmaya başladı ve üst düzey dillerin var olma hakkını kanıtlaması neredeyse 5 yılını aldı. Fortran'ın tam adı The IBM Formula Translating System veya FORmula TRANslator'dır. 60 yıllık olmasına rağmen en popüler programlama dillerinden biri olmaya devam ediyor ve Veri Biliminde inanılmaz derecede talep görüyor. Bu süre zarfında pek çok versiyon gördük: Fortran 1, II, 66, 77, 90, 95, 2008 ve gelecek yıl bir tane daha çıkacak (Fortran 2015 planlandı ancak gecikmeler nedeniyle adı 2018 olarak değişebilir) . Fortran'da üst düzey bir dilin pek çok özelliği aynı anda ilk kez uygulandı:

    • aritmetik ve mantıksal ifadeler;
    • DO döngüsü (FO döngüsünün ilk biçimi);
    • koşullu IF ifadesi;
    • altprogramlar;
    • diziler.

    Fortran'ın modern programcıların farkında bile olmadığı bir diğer önemli mirası da tamsayılar için değişken kısıtlamaların kullanılmasıdır. Hepsinin I, J, K, L, M, N (I-Nteger'den türetilmiş) 6 karakterden biriyle başlaması gerekiyordu. Numaralandırmalar için i, j vb. değişkenleri alma alışkanlığı buradan geldi.


    IBM 704 - Fortran'ın oluşturulduğu makine

    Aynı zamanda Fortran makinelere yakın bir dil olarak kaldı. Mesela şu vardı:

    If (ifade) doneg, dozero, dopos

    Bunun nedeni, doğru kaydı kullanmak için bir komut gerektiren IBM bilgisayar mimarisiydi: negatif, sıfır veya pozitif. Makinelere yakınlık, iyi bilinen GOTO komutunda da ortaya çıktı (daha sonra Basic tarafından devralındı), bu, bir veya başka bir komuta doğrudan geçiş anlamına geliyordu.

    Aritmetik ifadeler sorununa dönecek olursak, yığın kaba kuvvet algoritması (yani dizenin tamamını analiz etmek) etkili bir çözüm değildi ancak uygulamanın ne kadar basit ve mantıklı olabileceğini kanıtladı.

    Herkes için diller

    Fortran 1, karmaşık sayı ve kayan nokta işlemlerine dayanan bilimsel bir dildi. Metni nasıl işleyeceğini bile bilmiyordu; bunu yapmak için onu özel kodlara dönüştürmek zorundaydı. Bu nedenle Fortran'ın, Cobol dilinin özel olarak yaratıldığı iş için uygun olmadığı ortaya çıktı.

    Sözdizimi temel olarak farklıdır ve doğal İngilizceye mümkün olduğunca yakındır. Neredeyse hiç aritmetik yoktu, yalnızca aşağıdaki gibi ifadeler vardı:

    Geliri Toplam Gider Çıkarmaya Taşı

    Cobol, önceki makine aritmetik düşüncesinden evrensel insan düşüncesine kadar maksimum mesafenin kişileşmesi haline geldi. Ve en önemlisi artık metin ve kayıtlarla çalışmak mümkündü.

    Bir sonraki temel dil, bilimsel raporlar ve yayınlar için tasarlanan Algol'du (ALGOritmik Dil). İlk defa bizim için doğal olan şeyler onda ortaya çıktı:

    • atama:= ve mantıksal eşitlik =; arasındaki farklar
    • üç argümanlı bir for döngüsü kullanma: başlangıç ​​değeri, limit, adım;
    • programların başlangıç ​​ve bitiş arasındaki blok yapısı, GOTO kullanma ihtiyacını ortadan kaldırdı.

    C, C++, C#, Java ve günümüzün diğer birçok popüler dili Algol'den geldi.

    1950'lerin dördüncü balinası, özellikle yapay zekaya hizmet etmek için geliştirilen Lisp'ti (LISt İşleme dili). Ana özelliği zorunlu verilerle değil işlevlerle çalışmaktı. Bunu yapmak için John McCarthy'nin normal çalışmaya yönelik birçok mekanizma sağlaması gerekiyordu: dinamik yazma, otomatik bellek ayırma, çöp toplayıcı. Sonuçta Python ve Ruby gibi dillerin atası olan Lisp'ti ve kendisi de hala yapay zekada aktif olarak kullanılıyor.

    Böylece 1950'ler programcıların düşünme şeklini değiştirdi, dört temel dili doğurdu ve dünyayı bilgisayar devrimi yoluna soktu.
    Bir dahaki sefere 1960'larda dillerin ve programlama dünyasının nasıl geliştiğinden bahsedeceğiz.

    Yaratılışa yol açan en devrimci fikirlerden biri, 19. yüzyılın 20'li yıllarında Ch. Babbage tarafından makinenin eylemlerinin sırasının önceden kaydedilmesiyle ilgili ifade edilen fikirdi. Bu andan itibaren başlıyor programlama dillerinin tarihi.

    Programlama dilleri tarihinde devrim niteliğinde bir an, Pennsylvania Üniversitesi'nin bir çalışanı olan John Mauchly tarafından önerilen, makine talimatlarını özel karakterler kullanarak kodlamak için bir sistemin ortaya çıkmasıydı. Mauchly'nin önerdiği kodlama sistemi, tüm hayatını bilgisayarlara ve programlamaya adayan şirket çalışanlarından biri olan Grace Murray Hopper'ı büyüledi.

    Mark 1 bilgisayarı üzerinde çalışırken G. Hopper ve grubu birçok sorunla karşı karşıya kaldı. Özellikle alt programlarla geldiler.

    Programlama dilleri tarihinin başlangıcında makine kodu, kişi ile bilgisayar arasındaki tek iletişim aracıydı. Programlama dillerinin yaratıcılarının en büyük başarısı, bilgisayarın kendisinin bu dillerden makine koduna çevirmen olarak çalışmasını sağlayabilmeleriydi.

    40'lı yılların sonlarında, G. Hopper, John Mauchly'nin şirketine katılmadan önce, John Mauchly, ilkel bir üst düzey programlama dili olan "Kısa Kod" adlı bir sistem yarattı. Programcı, çözülmesi gereken sorunu matematiksel formüller biçiminde yazdı ve ardından özel bir tablo kullanarak karakter karaktere çevrilerek bu formülleri iki harfli kodlara dönüştürdü. Daha sonra özel bir bilgisayar programı bu kodları ikili makine koduna dönüştürdü. J. Mauchly tarafından geliştirilen sistem esasen ilk ilkel yorumlayıcılardan biriydi.

    Zaten 1951 yılında Hopper dünyanın ilk derleyicisini yarattı ve bu terimi de tanıttı. Hopper derleyicisi, komutları birleştirme işlevini yerine getirdi ve çeviri sırasında alt programları düzenledi, tahsis etti ve yüksek seviyeli komutları (o zamanlar sözde kodlar) makine komutlarına dönüştürdü.

    50'li yılların ortaları, programlama dilleri tarihinde hızlı ilerleme ile karakterize edilir. Makine komutlarında programlamanın rolü azalmaya başladı. Makineler ve programcılar arasında aracı görevi gören yeni bir tür programlama dili ortaya çıkmaya başladı. Bunlardan ilki ve en yaygın olanı, 1954'te bir grup IBM programcısı tarafından geliştirilen Fortran'dı (ilk versiyon).

    60'lı yılların ortalarında, Dartmouth College matematik bölümünün üyeleri Thomas Kurtz ve John Kemeny, basit İngilizce kelimelerden oluşan özel bir programlama dili yarattılar. Yeni dile BASIC adı verildi.

    60'lı yılların başında, mevcut tüm üst düzey programlama dilleri bir yandan sayılabilirdi, ancak daha sonra sayıları üç bine ulaştı. Elbette dillerin ezici çoğunluğu, programlama dilleri tarihinde yaygın bir dağılıma sahip değildir; pratikte iki düzineden fazlası kullanılmaz. Geliştiriciler, programlama dillerini farklı görev sınıflarına odakladılar, bunları belirli bilgisayar mimarilerine bir dereceye kadar bağladılar ve kişisel zevkleri ve fikirleri uyguladılar. Programlama dilleri tarihinde 60'lı yıllarda evrensel bir programlama dili yaratılarak bu "anlaşmazlığın" üstesinden gelinmeye çalışıldı. Bu yöndeki ilk fikir 1967'de PL/I (Program Dili Bir) idi. Daha sonra ALGOL-68 (1968) bu rolü üstlendi. Bu tür dillerin gelişip gelişeceği ve diğerlerinin yerini alacağı varsayıldı. Ancak bugüne kadar bu girişimlerin hiçbiri başarıya ulaşmadı. Dilin kapsamlılığı, programcı açısından haksız yere yapıların karmaşıklığına ve derleyicilerin verimsizliğine yol açtı.

    50'li yılların sonunda Algol (ALGOL, ALGOrithmic Language'dan - algoritmik dil) programlama dilleri tarihinde ortaya çıktı. Algol, atanan sorunları çözmek için kullanılan bir dizi prosedür şeklinde oluşturulan kayıt için tasarlanmıştır.

    Algol'un algoritmaların gelişimini yapılandırma fikrinin gelişimi, programlama dilleri tarihine en çok, 70'lerin başında İsviçreli bilim adamı Niklaus Wirth tarafından Pascal dilinin yaratılmasıyla yansıdı. Pascal dili başlangıçta bir eğitim dili olarak geliştirildi ve aslında şu anda okullarda ve üniversitelerde programlamayı öğretmek için ana dillerden biri.

    60'ların sonlarından 80'lerin başına kadar olan dönem, programlama dilleri tarihinde, paradoksal olarak yazılım krizine eşlik eden farklı dillerin sayısındaki hızlı artışla karakterize edilir. Bu kriz özellikle ABD askeri departmanı için şiddetliydi. Ocak 1975'te Pentagon, çevirmenlerin kaosuna düzen getirmeye karar verdi ve tek bir evrensel dil geliştirmesi emrini veren bir komite kurdu. Kazanan dile ADA adı verildi.

    Yazılım sistemleri geliştiricileri (dahil) arasında çok popüler olan C dili (ilk versiyon – 1972). C, hem üst düzey bir dilin hem de makine odaklı bir dilin özelliklerini birleştirerek programcının BASIC ve Pascal gibi dillerin sağlamadığı tüm makine kaynaklarına erişmesine olanak tanır.

    Uzun yıllar boyunca yazılımlar Fortran, BASIC, Pascal, Ada, C gibi operasyonel ve prosedürel diller temel alınarak oluşturuldu. Klasik operasyonel ve/veya prosedürel programlama, programcının bir problemin nasıl çözüleceğini ayrıntılı olarak açıklamasını gerektirir; Algoritmanın formülasyonu ve özel gösterimi. Bu durumda sonucun beklenen özellikleri genellikle belirtilmez. Bu grupların dillerinin temel kavramları operatör ve veridir. Prosedürel yaklaşımda operatörler prosedürler halinde gruplar halinde birleştirilir. Yapılandırılmış programlama bir bütün olarak bu yönün ötesine geçmez; yalnızca ek olarak programlama teknolojisinin bazı yararlı tekniklerini yakalar.

    Programlama dilleri tarihinde temelde farklı bir yön, prosedürel olmayan programlamanın metodolojileri (bazen "paradigmalar" olarak da adlandırılır) ile ilişkilidir. Bunlar nesne yönelimli ve bildirimsel programlamayı içerir. Nesne yönelimli bir dil, birçok bağımsız nesne biçiminde bir ortam yaratır. Her nesne ayrı bir bilgisayar gibi davranır; işleyişinin iç mekanizmalarına girmeden "kara kutular" olarak sorunları çözmek için kullanılabilirler. Profesyoneller arasında popüler olan nesne programlama dillerinden ilk olarak C++'dan bahsetmek gerekir; daha geniş bir programcı yelpazesi için Delphi ve Visual Basic gibi ortamlar tercih edilir.