• Programlama dili Fortran (Fortran). Yürüyen ölü. Fortran

    Programlama dili Fortran'ın yaratılış tarihi. mevcut standartlar. Fortran programlama dilinin sürümü.

    İlk bilgisayarlar için programlar, programcılar tarafından makine komut dillerinde yazılmıştır. Bu çok zahmetli ve uzun bir süreçtir. Programın başlaması ile kullanılmaya başlanması arasında önemli bir süre geçmiştir. Bu sorun ancak programlama otomasyon araçları oluşturularak çözülebilir.
    Programcıların emeğini kurtaran ilk "araçlar" alt programlardı. Ağustos 1944'te, sinx'i hesaplamak için ilk alt program, Grace Hopper'ın (bir kadın programcı, ABD Donanması subayı) yönetimindeki Mark-I röle makinesi için yazıldı.
    Birden fazla Grace Hopper, programcıların işini kolaylaştırma sorunu konusunda endişeliydi. 1949'da John Mauchly (ENIAC bilgisayarının yaratıcılarından biri), programlama dillerinin atası sayılabilecek KISA Kod sistemini geliştirdi. yüksek seviye. Programcı çözülecek sorunu formda yazdı matematiksel formüller, formülleri iki harfli kodlara dönüştürdü. Daha öte özel program bu kodları ikili makine koduna çevirdi. Böylece J. Mauchli ilk ilkel tercümanlardan birini geliştirdi. Ve 1951'de G. Hopper ilk A-0 derleyicisini yarattı. Bu terimi ilk tanıtan oydu.

    İlk yüksek seviyeli diller: Cobol ve Fortran
    1950'lerde G. Hopper liderliğindeki bir grup yeni bir dil ve derleyici B-0 geliştirmeye başladı. Yeni dil sıradan İngilizceye yakın bir dilde programlamaya izin verirdi. Dilin geliştiricileri, tanınması için G. Hopper'ın gelecekteki programlama dillerinin operatörlerinde korunan bir yöntemle geldiği yaklaşık 30 İngilizce kelime seçti: her kelime, birinci ve üçüncü harflerin benzersiz bir kombinasyonunu içerir. Bu nedenle derleyici, programın makine kodunu oluştururken sözcükteki diğer tüm harfleri yok sayabilir.
    Dili günlük konuşma diline yakın böyle bir sistemin ortaya çıkma ihtiyacı, G. Hopper, bilgisayarların kapsamının genişleyeceği ve bununla bağlantılı olarak kullanıcı çevresinin büyüyeceği gerçeğiyle ilişkilendirildi. G. Hopper'a göre, "hepsini matematikçiler".
    1958'de B-0 sistemi FLOW-MATIC olarak adlandırıldı ve ticari verilerin işlenmesine odaklandı. 1959'da COBOL (Common Business Oriented Language) dili geliştirildi (Cobol) makineden bağımsız Programlama dili o dilden karşılık gelen tercüman için yüksek seviye. Yaratılış danışmanı COBOL dili G. Hopper tekrar konuştu.
    1954'te yaratılışla ilgili bir mesaj yayınlandı. FORTRAN dili(Formula TRANslation) (Fortran). Dilin doğum yeri, IBM'in New York'taki genel merkeziydi. Ana geliştiricilerden biri

    John Backus. Ayrıca birçok programlama dilinin sözdizimini tanımlamak için kullanılan NFB'nin (Backus Normal Form) yazarı oldu. Aynı dönemde ALGOL dili Avrupa ülkelerinde ve SSCB'de yaygınlaştı. FORTRAN gibi, matematik problemlerine odaklandı. O zamanın gelişmiş programlama teknolojisini - yapılandırılmış programlamayı uyguladı.

    SSCB'de Fortran.

    Fortran, SSCB'de Batı'dan daha sonra ortaya çıktı, çünkü Algol ilk başta ülkemizde daha umut verici bir dil olarak görülüyordu. Sovyet fizikçilerinin 1960'larda neredeyse tüm hesaplamaların Fortran programları kullanılarak yapıldığı CERN'deki meslektaşları ile iletişimleri, Fortran'ın tanıtılmasında önemli rol oynadı.

    İlk Sovyet Fortran derleyicisi 1967'de Minsk-2 makinesi için oluşturuldu, ancak pek ün kazanmadı. Fortran'ın yaygın tanıtımı, 1968'de BESM-6 makinesi için FORTRAN-DUBNA derleyicisinin oluşturulmasından sonra başladı. 1972'de ortaya çıkan ES bilgisayarlarında başlangıçta bir Fortran tercümanı vardı (diğer yazılımlarla birlikte IBM/360'tan “ödünç alınmış”).

    standartlar

    Dil, ANSI ve ISO içinde standardize edilmiştir.

    Standartlar geliştirildi - Fortran 66, Fortran 77, Fortran 90, Fortran 95, Fortran 2003 ve Fortran 2008.

    Programlama dillerinin standardizasyonu, artan hareketlilik için ön koşullar oluşturur yazılım herhangi bir mimarideki bilgisayarlar için. Fortran'ın standardizasyonu, dilin uzun ömürlü olmasının nedenlerinden biridir, çünkü standardizasyon sayesinde, dilin var olduğu on yıllar boyunca yaratılan devasa uygulama programları fonunu kullanmak mümkündür.

    Fortran oldukça standartlaştırılmış bir dildir, bu nedenle farklı platformlara kolayca taşınabilir. Birkaç uluslararası dil standardı vardır:

    FORTRAN IV(daha sonra temeli oluşturdu FORTRAN 66 (1966);

    FORTRAN 77(1978) birçok iyileştirme: dize veri türü ve onu işlemek için işlevler, blok ifadeleri IF, ELSE IF, ELSE, END IF, INCLUDE program parçası dahil etme ifadesi, vb.

    Fortran 90(1991) dil standardını önemli ölçüde revize etti. Kod yazmak için ücretsiz bir biçim sundu. Göründü ek açıklamalar ZIMNİ YOK, TİP, ATANABİLİR, İŞARETÇİ, HEDEF, İSİM LİSTESİ; kontrol yapıları DO … END DO, DO WHILE,CYCLE , SELECT CASE, WHERE; dinamik bellekle çalışın (ALLOCATE, DEALLOCATE, NULLIFY); yazılım bileşenleri MODÜL, ÖZEL, GENEL, İÇERİR, ARAYÜZ, KULLANIM, AMAÇ. Her şeyden önce dizilerle çalışmak için yeni yerleşik işlevler ortaya çıktı, dilde OOP öğeleri ortaya çıktı

    Fortran 95(1997) - önceki standardın düzeltilmesi Fortran 2003(2004) Dilde OOP desteğinin daha da geliştirilmesi. Etkileşim işletim sistemi FORALL işleci ve yapısı, dizileri atamak ve hantal döngüleri değiştirmek için WHERE işlecinden ve yapısından daha fazla esneklik sağlayan tanıtıldı. FORALL, herhangi bir bölüm atamasını veya işlecini değiştirmenize izin verir ve özellikle WHERE yan tümcesi, bir matrisin köşegenine erişim sağlar. Bu işleç, döngülerden daha verimli paralelleştirmeye katkıda bulunarak paralel hesaplamada umut verici olarak kabul edilir.

    Fortran 2003 (2004) Daha fazla gelişme Dilde OOP desteği. İşletim sistemi ile etkileşim. Aşağıdaki özellikler de eklenmiştir: 1. Asenkron veri girişi/çıkışı 2. Dil ile etkileşim araçları. 3. Dinamik veri yerleşimini iyileştirme. Fortran 2008(2010) Standart, dili desteklediğini varsayar paralel hesaplama(Ortak Diziler Fortran). Ayrıca dizilerin maksimum boyutunun 15'e çıkarılması, yerleşik özel matematik fonksiyonların eklenmesi vb. planlanmaktadır.

    Fortran programlama dili versiyonu

    Yalnızca birleştiricide programlar geliştiren programcılar, yüksek performanslı üst düzey bir dil olasılığı hakkında ciddi şüphelerini dile getirdiler, bu nedenle Fortran derleyicilerinin geliştirilmesindeki ana kriter, yürütülebilir kodun verimliliğiydi. Bu dil için istatistiksel komplekslerden uydu kontrol paketlerine kadar çok sayıda kitaplık oluşturuldu, bu nedenle Fortran aktif olarak kullanılmaya devam ediyor. Birden çok işlemciye sahip paralel süper bilgisayarlar için Fortran WF'nin (Yüksek Performanslı Fortran) standart bir sürümü vardır.

    Kobol (Kobol). 60'ların başında geliştirilen, ekonomik alanda uygulama ve iş problemlerini çözmek için derlenmiş bir dildir. Harika "ayrıntılılığı" ile dikkat çekiyor - operatörleri bazen sıradan İngilizce ifadeler gibi görünüyor. Cobol, çeşitli cihazlarda depolanan büyük miktarda veriyle çalışmak için çok güçlü araçlar uygulamıştır. harici medya. Günümüzde aktif olarak istismar edilen bu dilde birçok uygulama oluşturulmuştur.

    Algol (Algol). 1960 yılında oluşturulan derlenmiş dil. Fortran'ın yerini alması amaçlandı, ancak daha karmaşık yapısı nedeniyle yaygın olarak kullanılmadı. 1968'de, yetenekleri açısından hala birçok programlama dilinin önünde olan, ancak yeterince verimli bilgisayarların bulunmaması nedeniyle, bunun için zamanında iyi derleyiciler oluşturmak mümkün olmayan Algol 68 sürümü oluşturuldu. .

    Paskal (Paskal). Modern programlamanın birçok fikrinin kurucusu olan Niklaus Wirth tarafından 70'lerin sonlarında yaratılan Pascal dili, birçok yönden Algol'a benzer, ancak programın yapısı için bir takım gereksinimleri sıkılaştırır ve programın başarılı olmasını sağlayan özelliklere sahiptir. büyük projeler oluştururken kullanılır.

    Temel (Temel). Bu dil için hem derleyiciler hem de tercümanlar var ve popülerlik açısından dünyada ilk sırada yer alıyor. 60'larda şu şekilde yaratıldı: öğretim dili ve öğrenmesi çok kolay. Gelecek vaat eden programlama dillerinden biridir.

    C (Ci). Verilen dil Bell laboratuvarında oluşturuldu ve başlangıçta kütle olarak kabul edilmedi. Eşit derecede verimli ve kompakt programlar oluşturabilmek ve aynı zamanda belirli bir işlemci türüne bağlı olmamak için birleştiricinin değiştirilmesi planlandı. 70'li yıllarda birçok uygulamalı ve sistem programı ve bir dizi tanınmış işletim sistemi (Unix) bu dilde yazılmıştır.

    Java (Java, Java). Bu dil Sun tarafından 90'ların başında C++ temel alınarak oluşturuldu. Tüm alt düzey özellikleri ortadan kaldırarak C++ tabanlı uygulamaların geliştirilmesini basitleştirmek için tasarlanmıştır. Ancak ana özellik bu dilin - makine koduna değil, platformdan bağımsız bayt koduna derleme (her komut bir bayt yer kaplar). Bu bayt kodu bir tercüman ile yürütülebilir - Java sanal makinesi(Java Virtual Machine), sürümleri bugün herhangi bir platform için oluşturulmuştur. Birçok Java makinesinin varlığından dolayı, Java programları yalnızca kaynak kodu düzeyinde değil, aynı zamanda ikili bayt kodu düzeyinde de taşınabilir, bu nedenle Java bugün dünyada BASIC'ten sonra popülerlik açısından ikinci sırada yer almaktadır.

    İÇİNDE Son zamanlarda oluşturmaya odaklanan programlama sistemleri Windows uygulamaları:

    · naylon poşet Borland Delfi (Delphi), yüksek kaliteli ve çok uygun görsel geliştirme araçları sağlayan Borland Pascal derleyici ailesinin parlak bir halefidir. Olağanüstü hızlı derleyicisi, neredeyse tüm uygulama programlama problemlerini verimli ve hızlı bir şekilde çözmenize olanak tanır.

    · naylon poşet Microsoft Visual Basic - görsel araçları kullanarak Windows programları oluşturmak için kullanışlı ve popüler bir araç. oluşturmak için araçlar içerir. diyagramlar Ve sunumlar.

    · naylon poşet Borland C++ - DOS ve Windows uygulamaları geliştirmek için en yaygın araçlardan biri.

    Fortran'ı ilk kez erken çocuklukta babamdan duydum. 70'lerde delikli kart kullanarak ilkel bir kod çalıştırmak için üniversitedeki neredeyse tek bilgisayarda saatlerce sıraya girmek zorunda kaldığını söyledi. Dürüst olmak gerekirse, o zamandan beri ve yakın zamana kadar (teknik eğitimime rağmen), Fortran'ın çok uzak bir yerde, delikli garip karton kutuların bilgi taşıyıcı görevi gördüğü ve bilgisayarların çok pahalı olduğu bir dünyada kaldığından tamamen emindim. gerçek bir cazibe olarak.

    Fortran'ın sadece başka bir yerde kullanılmadığını, geliştiğini, talep edildiğini ve hala alakalı olduğunu öğrendiğimde şaşırdığım şey neydi? Bu ana kadar Fortran'ın uzun süredir ölü bir adam olduğuna da inandıysanız, işte size neden hala yürüdüğüne dair bazı ilginç gerçekler.

    En az 10 güncellemeden sağ çıktı

    Aslında, okuldaki veya üniversitedeki öğretmenlerden duyduğunuz Fortran, 1954 ile 1957 yılları arasında oluşturuldu. İlk tam olarak uygulanan üst düzey dil olarak tarihe geçti, BT dünyasında küçük bir atılım yaptı, ancak aslında çok kullanışlı ve işlevsel değildi. IBM, neredeyse anında "bitirmeye" başladı, zaten 1958'de FORTRAN II ortaya çıktı ve buna paralel olarak FORTRAN III. Ancak, yalnızca 70'lerde, yeterince taşınabilir makineler ortaya çıktığında, tam teşekküllü bir IBM FORTRAN IV standardı geliştirildiğinde ve FORTRAN 66 döngüler, etiketler, koşullu ifadeler, G / Ç komutları ve diğerleri modern standartlara göre ilkel olanaklar.

    En son sürüm 2010'da çıktı, adı Fortran 2008'dir (görebileceğiniz gibi, tarih boyunca ad yalnızca yazılmayı bıraktı. büyük harfler), ayırt edici bir özelliği, hem veri işleme hızını hem de işlenen dizilerin boyutlarını olumlu yönde etkileyen her türlü paralel hesaplamadır. Ek olarak, Fortran 2015'in 2018'de piyasaya sürülmesi planlanıyor. Duyurudan, C ile entegrasyonu iyileştirmenin yanı sıra mevcut eksiklikleri gidereceği anlaşılıyor.

    En popüler 30 programlama diline dahildir

    Bugüne kadar, sorguların %0,743'ü arama motorları programlama dilleri ile ilgili olarak, özellikle Fortran'a ayrılmıştır. Bunun ne kadar havalı olduğu hakkında bir fikir vermesi için Lisp, Scala, Clojure, LabVIEW, Haskell, Rust ve VHDL gibi dillerin daha alt sıralarda olduğunu hayal edin.

    Android'de çalışabilir (yalnızca değil)

    Fortan için derleyiciler, uzun tarihi boyunca IBM, Microsoft, Compaq, HP, Oracle gibi şirketler tarafından geliştirildi ve dili bugün Windows, Mac OS ve Linux ile uyumlu hale getirdi. Dahası, Android için CCTools uygulaması sayesinde kullanışlı bir derleyici uygulaması artık yanınızda. Derleyiciyi iPhone'unuzda da çalıştırabilirsiniz, ancak bu durumda biraz sihir yapmanız gerekir.

    MATLAB ile yarışır

    Şimdiye kadar, bu metinde asıl şey söylenmedi, yani Fortran'ın kapsamı. Yani bu, bilim ve mühendislikte talep gören bir dildir, tamamen veya kısmen hava tahmini, oşinografi, moleküler dinamik, sismolojik analiz için kullanılır. Genel olarak bu, hesap makinesinin toplu satışa ilk çıktığı zamandan gelen gerçek bir "Veri Bilimi" dilidir.

    Aynı zamanda, Fortran'ın popülaritesinin bir kısmını mirasa borçlu olduğunu kabul etmeye değer. Yıllar geçtikçe, neredeyse hiç rekabet olmaksızın, dil çok büyük bir istemci, kitaplık ve eklenti tabanı elde etti. Ayrıca, her sonraki sürüm Fortran kaçınılmaz olarak öncekileri destekler. Dolayısıyla bilim adamlarının ve mühendislerin bu birlikten vazgeçmeye zorlanması için önemli bir faktörün olmadığı bir durum ortaya çıkmıştır.

    Aslında, Fortran'ın bugün ana rakibi, daha çok yönlü, daha işlevsel ve daha kullanışlı olan MATLAB'dir. Bununla birlikte, MATLAB aynı zamanda kullanılan yazılım üzerinde katı kısıtlamalara sahiptir, oldukça pahalıdır ve çoğu durumda gereksizdir.

    Nispeten parlak bir geleceği var

    10-20 yıl sonra ne olacağını, bu süre zarfında bilişim dünyasının nasıl değişeceğini elbette tahmin edemiyoruz. Bununla birlikte, Fortran için olası yeni rakiplere (Go gibi) bakıldığında, ana dezavantajları genellemedir. Yani, Fortran'ın yaratıcıları çok hızlı bir şekilde özetledi hedef kitle bilim adamları olarak onların görüşleri ve istekleri önceliklidir. Bu nedenle, yarın bir moda akımı uğruna "özel siparişlerinden" vazgeçeceklerini hayal etmek zor. Buna dayanarak, başka bir Fortran neslinin cesurca ayrıldığı iddia edilebilir.

    Ve sonra sadece yeni bir sürüm yayınlıyorlar.

    * "PC Magic" 2000 Sayı 6(28), s. 49–50.

    1955'te ilk yüksek seviyeli algoritmik dil yayınlandı. FORTRAN(FORMula TRANslator - formül çevirmeni). Esas olarak bilimsel, teknik ve mühendislik problemlerini çözmek için kullanıldı ve IBM çalışanları tarafından John Backus. Kısa bir süre sonra, 1957'de John Backus ve işbirlikçileri IBM'de (Westinghouse) ilk Fortran derleyicisini kurdular. Daha önce yalnızca Assembly'de çalışan programcılar, yüksek performanslı üst düzey bir dilin olanakları konusunda şüpheciydiler, bu nedenle Fortran standartlarını geliştirmek ve bu dilden derleyiciler oluşturmak için ana kriter, yürütülebilir kodun verimliliğiydi. Bu arada, Amerika Birleşik Devletleri'ndeki tek kadın amiral olan ve "Programlamanın First Lady'si ve Cobol'un büyükannesi" olarak da anılan Grace Hopper zaten tanıtılmış olmasına rağmen, "derleyici" terimi o zamanlar henüz yaygın olarak kullanılmıyordu. .
    Çoğu Fortran operatörü doğrudan bir veya iki makine talimatına, basit sözdizimsel yapılara ve aktif kullanım etiketler ve git çok hızlı kod almayı mümkün kıldı ve sonuç olarak Fortran programları bazen montajcı programlardan daha hızlı çalıştı. Derlenen programın dahili yapısı da çok basitti - tüm kodlar, tüm alt programlar ve tüm veriler, ortak blokla birlikte, yalnızca statik bellek, ancak bu nedenle özyinelemeyi kullanmak imkansızdı.
    Fortran, zamanın çoğu kullanıcısının ihtiyaçlarını karşılayan ilk üst düzey dil olduğu ve aynı zamanda öğrenmesi kolay olduğu için çok hızlı yayıldı.
    Bu dilin geniş dağılımı ve birçok Fortran programının (çoğunlukla hesaplamalı) ortaya çıkması nedeniyle, standartlaştırılması konusu acil hale geldi. İlk başta standarttı Fortran IV 1964, ardından yeni fikirler ortaya çıktıkça 1978'de yeni bir standart kabul edildi. Fortran 77(f77) daha modern ve esnek sözdizimi uzantılarıyla. Bugün, Fortran'ın en yaygın varyantı Fortran 90(f90) ve Fortran 95. Bir grup meraklı, bu yıl yayınlanacak olan F2k dilinin süper versiyonu üzerindeki çalışmalarını bitiriyor.
    Dilin yeni versiyonları bazen şu şekilde tanıtılsa da: gereksiz ekstralar(örneğin, dinamik bellek tahsisi ile ilişkili uzantılar) ve bir programın modüler organizasyonu, dizilerin bölümleriyle çalışma vb.
    Bununla birlikte, sıklıkla çeşitli hesaplama problemlerini çözmek zorunda kalanlar için, her seferinde bir matematik ders kitabı alıp "sıfırdan başlamak" hiç gerekli değildir. Bu tür durumların %90'ında, aradığınız şey Fortran'da uzun süredir uygulanmış ve hataları ayıklanmıştır. Bu nedenle, büyük olasılıkla, Fortran'ın ömrü uzun süredir sağlanmaktadır.
    Fortran için başka, nispeten genç bir niş daha var - dilin katı anlambiliminin yüksek performanslı programlar elde etmenize izin verdiği paralel hesaplama. Genellikle, programın paralelleştirmeye uygun kısımlarını belirtmek için bir dizi işleçle biraz genişletilmiş f90 standardı kullanılır. Paralel Fortran'ın kendi standardı vardır HPF(Yüksek Performanslı Fortran). Bununla birlikte, sloganı "Fortran'da her şeyi yazabildiğimde neden diğer dilleri öğrenmeliyim" sloganı olan Fortran hayranları, 50'lerin sözdizimine bağlılıkla ilişkili büyük ölçekli projeler için bariz uygunsuzluğunu hissettiler. ve ona modaya uygun OOP fikirlerini sokmaya çalıştı, ancak Fortran nesnesi bir standart olarak görünmedi.
    Fortran'ın ücretsiz sürümleri arasında en ünlüsü, tüm UNIX sistemleri için uygulanan ve bir Fortran programının metnini C koduna dönüştüren f2c'dir. DOS için ücretsiz olarak dağıtılan bir bcf77 sürümü vardır. Ticari sürümlerden her şeyden önce, dll kitaplıkları oluşturmanıza izin veren Microsoft Fortran ve yüksek verimli kod üreten Watcom Fortran belirtilmelidir. Yüksek doğrulukta hesaplamalar gerektiren görevler için MicroWay derleyici tasarlanmıştır. Genel olarak, çeşitli kalitede Fortran derleyicileri kesinlikle tüm bilgisayar platformlarında mevcuttur.
    Bununla birlikte, Fortran'ın ana değeri farklıdır. Çok büyük projeler geliştirmek gerekli hale geldiğinde, öncelikle "ağır" hata ayıklama ile ilişkili Fortran'ın dezavantajları gereksiz yere külfetli hale geldi. Bu nedenle Fortran, hata ayıklama ve program testi teorisinin geliştirilmesi için en güçlü teşvik görevi gördü. Fortran metinlerinin yüzlerce sözdizimsel doğrulayıcısı ortaya çıktı ve gizli mantıksal hataları yakaladı. Daha sonra, programların eşdeğer optimizasyon dönüşümleri, üst düzey derleme, otomatik test vb. Gibi teorik programlama alanları bu yönden gelişti. Yani Fortran'ı unutamazsın. Sistem entegrasyon görevlerinde bir araç seti olarak kullanmak muhtemelen mantıklı değil, ancak geliştirilenler en iyi programcılar 30-40 yıl içinde gelişme sürecini oldukça hızlandırabilir. En azından, Fortran için diğer programlama dillerinden çok daha fazla yazılım "yapı taşı" vardır. ■

    * * *
    John Backus 3 Aralık 1924'te Philadelphia, Pensilvanya'da varlıklı bir ailede doğdu, çocukluğu Wilmington'da geçti. 1942'de okuldan mezun olduktan sonra Virginia Üniversitesi Kimya Bölümü'ne girdi (kimyacı olan babasının ısrarı üzerine), ancak bir süre sonra okumayı bıraktı ve 1943'te askere çağrıldı.
    Backus, Georgia, Fort Stewart'taki Hava Savunma Tugayı'nda hizmet vermeye başladı, ancak daha sonra tıp okumak için üniversiteye gönderildi.
    Bir süre şehir hastanesinde şevkle çalıştı ama 1946'da bu işe olan ilgisini kaybetti, ordudan ayrıldı ve ne yapacağını ve nasıl yaşayacağını bilmemesine rağmen New York'a taşındı.
    Bir süre sonra Backus, radyo mühendisliği eğitim okuluna girdi. "Çok iyi bir öğretmenim vardı ve benden bazı devrelerin özelliklerini hesaplamamı istedi. Çok sıkıcıydı ama son derece ilginçti."
    Backus kısa süre sonra matematik okumak için Columbia Üniversitesi'ne (New York) girdi ve 1949'da mezun oldu. Mezun olmadan kısa bir süre önce ziyaret etti. bilgisayar Merkezi IBM Madison Bulvarı'nda. Ve burada şans ona ikinci kez gülümsedi - 1950'de Backus IBM'de programcı oldu.
    IBM'in bilgisayar endüstrisindeki hakimiyeti ilk kez 1952'de konuşuldu. Her şey Savunma Hesaplayıcı olarak da bilinen Model 701 ile başladı. 701 modelinin piyasaya sürülmesinden hemen sonra, uygulamalı araştırma bölümünden uzmanlar onu geliştirmeye başladı (1955-1956).

    En ciddi değişiklikler, daha sonra 704 bilgisayarının oluşturulmasında aktif rol alan John Backus tarafından önerildi, özellikle onun sayesinde, önemli ölçüde basitleştirmeyi mümkün kılan "hızlı kodlama" teknolojisi ortaya çıktı. 701 için programlar yazmak. İndeks kaydı olmayan tek noktaya yayın sabit noktalı bir bilgisayar olan 701, onu gelişigüzel adresleme ve indeks kayıtları olan bir kayan nokta sistemine dönüştürdü,” diye hatırlıyor Backus. ikili kod".
    Hatta o günlerde günümüzde kullanılan hızlı programlama teknolojisinin ilk bileşenleri ortaya çıktı. Aslında bu sistem, 50'li ve 60'lı yıllarda piyasaya sürülen ve daha sonra yerini yüksek seviyeli dillere bırakan benzer komplekslerin öncüsü oldu.
    Ve 1955'te Backus, ilk üst düzey makine dili olan Fortran'ı "icat etti". Daha sonra bu dönemi hatırlayan Backus, "Ne için çabalayacağımızı bilmiyorduk ve nasıl yapacağımızı bilmiyorduk" diyecektir. Başlangıçta, tüm çalışmaların 1954'ün başlarında tamamlanması planlandı, ancak dilin gelişimi neredeyse iki yıl sonra tamamlandı.
    Derleyicinin ilk sürümü, manyetik bant üzerine yazılmış 25.000 satırlık makine kodundan oluşuyordu. Her IBM 704'e, 51 sayfalık bir programlama kılavuzu içeren programın bir kopyası sağlandı.
    1959'da Backus, üst düzey dillerin sözdizimini (BNF olarak kısaltılan Backus-Naur Normal Formu) açıklamak için dilbilgisi kuralları geliştirdi.
    1976'da John Backus, bilime katkılarından dolayı Ulusal Madalya ile ödüllendirildi ve 1991'de bilgisayar konularında çalışmayı bıraktı.

    Vladimir Buslaev

    OCR: ilk-karşılık, 2016

    Mesela bilim adamları arasında öyle bir söz vardır ki, herhangi bir matematik problemi zaten Fortran'da bir çözümü var ve aslında binlerce Fortran paketi arasında hem matris çarpımı için bir paket hem de karmaşık integral denklemleri çözmek için bir paket ve daha birçokları bulunabilir. Bu tür birkaç paket on yıllar içinde oluşturulmuştur ve bilim camiasında bugüne kadar popülerliğini korumaktadır, örneğin - IMSL ( İngilizce).

    Bu kitaplıkların çoğu aslında insanlığın malıdır: kaynak kodunda mevcutturlar, iyi belgelenmiştir, hata ayıklanmıştır ve çok etkilidirler. Bu nedenle, FORTRAN kodunu otomatik olarak modern programlama dillerine dönüştürmek için düzenli olarak girişimlerde bulunulmasına rağmen, diğer programlama dillerinde yeniden yazmak bir yana, değiştirmek bile maliyetlidir.

    Modern Fortran (Fortran 95 ve Fortran 2003), yeni bilgi işlem mimarileri için verimli programlama için gerekli özellikleri edinmiştir, uygulamanıza izin verir. modern teknolojiler programlama, özellikle OOP.

    Dil standartlarının gelişimi

    Fortran oldukça standartlaştırılmış bir dildir, bu nedenle farklı platformlara kolayca taşınabilir. Yeni dil standartları, daha önce yazılmış programların kodlarını kullanmayı ve bunları değiştirmeyi mümkün kılan eskileri ile sürekliliği büyük ölçüde korur.

    FORTRAN 66 (1972) IBM standardına göre FORTRAN IV FORTRAN 77 (1980) Birçok iyileştirme getirildi: Fortran 90 (1991) Önemli ölçüde revize edilmiş dil standardı. Fortran 95 (1997) Önceki standardın düzeltmesi. FORALL işleci ve yapısı, dizileri atamak ve hantal döngüleri değiştirmek için WHERE işlecinden ve yapısından daha fazla esneklik sağlayan tanıtıldı. FORALL, herhangi bir bölüm atamasını veya işlecini değiştirmenize izin verir ve özellikle WHERE yan tümcesi, bir matrisin köşegenine erişim sağlar. Bu işleç, paralel hesaplamada ümit verici olarak kabul edilir ve döngülerden daha verimli bir paralelleştirme uygulamasına katkıda bulunur. Fortran 2003 (2004) Dilde OOP desteğinin daha da geliştirilmesi. İşletim sistemi ile etkileşim. Aşağıdaki özellikler de eklenmiştir: Fortran 2008 (2010) Standart, paralel bilgi işlem dili (Co-Arrays Fortran) aracılığıyla desteklendiğini varsayar. Ayrıca dizilerin maksimum boyutunun 15'e çıkarılması, yerleşik özel matematik fonksiyonların eklenmesi vb. planlanmaktadır.

    derleyiciler

    Dilin ilk geliştirilmesinden bu yana, Fortran derleyicileri IBM tarafından üretilmiştir. Şu anda IBM, geçmişi 1964'e kadar uzanan çeşitli sürümlerin geliştirme geçmişi olan IBM System z anabilgisayarları için VS Fortran optimizasyon derleyicisini ve PowerPC mimarisine (AIX, Linux ve Linux) dayalı platformlar için XL Fortran derleyicisini sağlıyor. Blue Gene süper bilgisayarı (Macintosh bilgisayarlar PowerPC işlemcileri kullandığında Mac OS X için de bir sürüm vardı). Bu derleyicilerin her ikisi de, IBM uzmanlarının yarım asırlık sürekli bilimsel çalışmalarının sonucu olan çok gelişmiş optimize ediciler içerir. Bir IBM iş ortağı olan Absoft, IBM Fortran XL derleyicisine dayalı olarak, PowerPC (Linux, Mac OS X) ve Intel (Linux, Mac OS X, Windows) işlemcilere dayalı sistemler için Absoft Pro Fortran derleyicisini oluşturmuş ve tedarik etmiştir. .

    GNU Özgür Yazılım Vakfı, hemen hemen her platform için kullanılabilen ve GCC ile tamamen uyumlu bir açık kaynak Fortran 77 derleyicisi olan g77'yi yayımladı. Şimdi yerini Fortran-95 standardının hemen hemen tüm yapılarını ve Fortran-2003 ve Fortran-2008 standartlarının yapılarının çoğunu uygulayan GFortran derleyici aldı. Ayrıca Fortran-77 ile tamamen geriye dönük uyumludur. GCC'ye dayalı bir Fortran-95 derleyicisi oluşturmak için bağımsız bir g95 projesi de vardır.

    Programın özellikleri ve yapısı

    Fortran, oldukça geniş bir yerleşik matematiksel işlevler kümesine sahiptir, tamsayı, gerçek ve karmaşık sayılarla yüksek hassasiyetle çalışmayı destekler. Etkileyici araçlar Fortran ilk yüksek seviyeli dillerden biri olduğu için diller başlangıçta oldukça zayıftı. Daha sonra Fortran'a yapısal, işlevsel ve hatta nesne yönelimli programlamanın özelliği olan birçok sözcüksel yapı eklendi.

    Fortran için sütun işaretli delikli kart.

    Programların yapısı başlangıçta delikli kartlardan girişe odaklanmıştı ve bu özel durum için uygun olan bir dizi özelliğe sahipti. Böylece, 1. sütun, metni bir yorum olarak işaretlemeye hizmet etti (simgesiyle C), 1'den 5'e kadar etiket alanı vardı ve 7'den 72'ye kadar operatörün veya yorumun gerçek metni vardı. 73'ten 80'e kadar olan sütunlar, kart numaralandırmaya (yanlışlıkla dağılmış bir desteyi geri yüklemek için) veya kısa bir yoruma hizmet edebilir, tercüman tarafından göz ardı edildi. Operatörün metni ayrılan alana (7. sütundan 72. sütuna) sığmadıysa, bir sonraki kartın 6. sütununa bir devam işareti konur ve ardından operatör devam eder. Bir hatta (harita) iki veya daha fazla operatör yerleştirmek imkansızdı. Delikli kartlar tarihe karışınca bu avantajlar ciddi sıkıntılara dönüştü.

    Bu nedenle, Fortran 90 ile başlayan Fortran standardı, kaynak metnin sabit formatına ek olarak, satırın konumunu düzenlemeyen ve ayrıca satır başına birden fazla ifade yazmanıza izin veren serbest bir formata sahiptir. Ücretsiz bir biçimin tanıtılması, diğer kodlarla oluşturulan kod kadar okunabilir ve net kod oluşturmayı mümkün kılmıştır. modern Diller veya Java gibi programlama.

    Eski Fortran'ın bir tür "arama kartı", hem GOTO koşulsuz atlama işleçlerinde hem de döngü işleçlerinde ve operatörlerin FORMAT formatındaki giriş / çıkış açıklamalarında kullanılan çok sayıda etikettir. Çok sayıda etiket ve GOTO ifadesi genellikle Fortran programlarının anlaşılmasını zorlaştırıyordu.

    Bir dizi modern programlama dilinde (örneğin, Java) etiketlerin ve bunlarla ilişkili koşulsuz atlama operatörlerinin büyük ölçüde değiştirilmesinin nedeni bu olumsuz deneyimdir.

    Ancak modern Fortran, DO ... END DO, DO WHILE, SELECT CASE gibi operatörleri tanıtarak etiket fazlalığından kurtuldu. Üstelik modern dil standartlarında sadece bugüne kadar birçok dilde kullanılan klasik GOTO operatörü kalmıştır. Hesaplanan GOTO deyiminin yanı sıra ENTRY yapısı - prosedürlere çoklu giriş hariç tutuldu.

    Ayrıca, modern Fortran'ın olumlu özellikleri arasında, dizilerle çok sayıda yerleşik işlem ve sıra dışı indekslemeye sahip diziler için esnek destek yer alır. Örnek:

    Gerçek ,boyut (: ,: ) :: V ... ayır (D(- 2 : 2 ,0 : 10 ) ) ) ! Dizinleri olabilen bir dizi için bellek tahsis edin. ! -2 ile 2 arasında değişir (ilk dizin) ! ve 0'dan 10'a - saniye... V (2 ,2 : 3 ) = V(- 1 : 0 ,1 ) ! Bir dizinin dilimini döndürme yaz(* ,* ) V(1 ,: ) ! İlk dizini 1 olan V dizisinin tüm öğelerini yazdırın. serbest bırakmak(V)

    Selam Dünya!

    Sabit biçim (1'den 6'ya kadar olan satır konumlarındaki boşluklar "␣" karakterleriyle işaretlenmiştir):

    ␣␣␣␣␣␣PROGRAM merhaba ␣␣␣␣␣␣PRINT* , "Merhaba Dünya!" ␣␣␣␣␣␣END

    Serbest Biçim:

    Program merhaba yazdır * , "Merhaba Dünya!" son

    Notlar.

    • PROGRAM deyimi isteğe bağlıdır. Açıkçası, bir Fortran programında gerekli olan tek ifade END ifadesidir.
    • Program deyimlerini yazmak için büyük veya küçük harf seçimi isteğe bağlıdır. Modern Fortran dil standartları açısından, dil operatörleri yazılırken birçok büyük harf ve birçok küçük harf aynıdır.

    Diğer dillerle etkileşim

    Birçok programlama sistemi, bir Fortran programının çevirisi sonucunda elde edilen nesne dosyalarını diğer dillerdeki derleyicilerden elde edilen nesne dosyalarıyla ilişkilendirmenize izin verir, bu da daha esnek ve çok işlevli uygulamalar oluşturmanıza olanak tanır. Fortran dili için, hem klasik hesaplama problemlerini (LAPACK, IMSL, BLAS) çözmek için alt yordamları, hem de dağıtılmış hesaplamayı organize etme görevlerini (MPI, pvm) ve yapılandırma görevlerini içeren çok sayıda kitaplık mevcuttur. grafik arayüzler(Quickwin, FORTRAN/TK) veya bir DBMS'ye (Oracle) erişim.

    SSCB'de Fortran

    notlar

    1. Örneğin bakınız: UTK ve ORNL'deki Netlib Deposu
    2. A. M. Görelik. Programlama dili Fortran'ın (1957-2007) evrimi ve gelişimi için beklentiler // Hesaplamalı yöntemler ve programlama, 2008, cilt 9, s. 53-71
    3. Barteniev O.V.Çağdaş Fortran. - M .: Diyalog MEPhI, 2005. - ISBN 5-86404-113-0
    4. A. M. Görelik. modern Fortran'da nesne yönelimli programlama
    5. S. D. Algazin, V. V. Kondratiev. Visual Fortran'da programlama. - M .: "MEPhI Diyaloğu", 2008. - 448 s. - ISBN 5-8243-0759-8
    6. Görelik A. M. Haberler
    7. FORTRAN'A KARŞI
    8. Linux için XL Fortran
    9. Absoft Pro Fortran Derleyici Paketlerine Genel Bakış
    10. Sun Studio - Karşılaştırmalar
    11. Alexander Rastorguev'in Fortran'ın Dubna'da ortaya çıkışı hakkında yazdığı makale
    12. Rusya'da bilgisayar grafiklerinin tarihi

    Edebiyat

    • Fortran. Programmer's Reference Manual IBM 704 EDPM için Fortran Otomatik Kodlama Sistemi - IBM Corp., 1956. - 51 s.
    • ISO/IEC 1539-2:2000 Bilgi teknolojisi - Programlama dilleri - Fortran - Bölüm 2: Değişken uzunluklu karakter dizileri
    • Robert W. Sebesta. 2.3. IBM bilgisayar 704 ve Fortran dili // Programlama dillerinin temel kavramları \u003d Programlama Dilleri Kavramları / Per. İngilizceden. - 5. baskı - M .: Williams, 2001. - S. 63-69. - 672 s. - 5000 kopya. - ISBN 5-8459-0192-8 (Rusça), ISBN 0-201-75295-6 (İngilizce)

    Bağlantılar

    • gfortran - Fortran 95/2003/2008 derleyicisi, GNU Derleyici Koleksiyonunun bir parçası
    • Progopedia'da - programlama dilleri ansiklopedisi (Rusça)

    Alfabe - programlamada - programlama dilleri oluşturmak için kullanılan, ayrıştırılamaz, birbirinden güvenle ayırt edilebilen semboller (harfler, sayılar, noktalama işaretleri ve diğer semboller) sistemi.

    Sözdizimi, programların yapısını karakter kümeleri olarak tanımlayan bir programlama dilinin tarafıdır. Bir dilin sözdizimi, anlambilimine zıttır. Bir dilin sözdizimi "saf" bir dili tanımlarken, anlambilim çeşitli sözdizimsel yapılara anlamlar verir.

    Anlambilim - programlamada - bireysel dil yapılarının davranışını belirlemek için bir kurallar sistemi. Semantik, algoritmik bir dilde cümlelerin anlamsal anlamını belirler.

    Düşük seviyeli programlama dilleri - Autocode, Assembler,

    Üst düzey programlama dilleri -Fortran, Algol, Cobol, Pascal, BASIC, C++, Prolog

    Ultra üst düzey programlama dilleri - APL, Algol-68

    Hesaplamalı Programlama Dilleri - Fortran, Pascal, Algol, BASIC, C

    Sembolik işleme dilleri - Lisp, Prolog, Snobol, vb.

    Birinci nesil diller:

    Makine kodları birinci nesil programlama diliydi

    İkinci nesil diller:

    montajcı

    Üçüncü nesil diller:

    bu dillere genellikle "yüksek" seviyeli diller denir.

    Dördüncü nesil diller:

    TEMEL, COBOL, C ve Pascal

    Beşinci nesil programlama dilleri:

    Prolog, LISP, C++, Visual Basic, Delphi.

    Fortran programlama dili

    Tercümana sahip ilk üst düzey programlama dili. IBM Corporation'da John Backus liderliğindeki bir grup programcı tarafından 1954 ile 1957 yılları arasında oluşturuldu. Fortran adı, FORmula TRANslator'ın (Formula Çevirmen) kısaltmasıdır. Fortran, öncelikle bilimsel ve mühendislik hesaplamaları için yaygın olarak kullanılır. Modern Fortran'ın avantajlarından biri, içinde yazılmış çok sayıda program ve alt program kitaplığıdır. Bu kitaplıkların çoğu aslında insanlığın malıdır: kaynak kodunda mevcutturlar, iyi belgelenmiştir, hata ayıklanmıştır ve çok etkilidirler. Bu nedenle, FORTRAN kodunu otomatik olarak modern programlama dillerine dönüştürmek için düzenli olarak girişimlerde bulunulmasına rağmen, diğer programlama dillerinde yeniden yazmak bir yana, değiştirmek bile maliyetlidir.

    Modern Fortran (Fortran 95 ve Fortran 2003), yeni bilgi işlem mimarileri için verimli programlama için gerekli özellikleri edinmiştir, modern programlama teknolojilerinin, özellikle OOP'nin kullanımına izin verir.

    Dil standartlarının gelişimi

    Fortran oldukça standartlaştırılmış bir dildir, bu nedenle farklı platformlara kolayca taşınabilir. Yeni dil standartları eskileri ile sürekliliği büyük ölçüde koruyor, bu da daha önce yazılmış programların kodlarını kullanmayı ve değiştirmeyi mümkün kılıyor.

    FORTRAN 77 (1980)

    Birçok iyileştirme getirildi:

    Bir dosyayı açmak ve kapatmak (OPEN, CLOSE) ve standart bir cihaza çıktı - YAZDIRmak için operatörler tanıtılır.

    Dize veri türü ve işlenmesi için işlevler eklendi.

    IF bloğu deyimi ve IF THEN - ELSE IF THEN - END IF yapısı ve INCLUDE program parçası dahil etme deyimi tanıtılır.

    Doğrudan erişim dosyalarıyla çalışma yeteneği tanıtıldı.

    Bir dizinin maksimum boyutu 3'ten 7'ye çıkarıldı. Dizi dizinlerindeki kısıtlamalar kaldırıldı.

    Prosedürlerle çalışma olanakları iyileştirildi ve genişletildi.

    Dahili bir dosya kavramı (diziler, sayısal ve dize değişkenleridir) tanıtıldı. Dahili dosyalar, özellikle, standart READ ve WRITE okuma ve yazma işleçleri ile sayı dizisi ve dizi sayısı dönüşümleri gerçekleştirmeye izin verir.

    Fortran 90 (1991)

    Önemli ölçüde revize edilmiş dil standardı.

    Kod yazmak için ücretsiz bir biçim sundu. IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST için ek açıklamalar eklendi.

    Kontrol operatörleri ve yapıları tanıtılır. DO ... END DO (döngüyü bir etiketle sonlandırmak yerine), DO WHILE, CYCLE döngüsünün başına bir kontrol aktarım ifadesi, bir SELECT CASE seçim yapısı (hantal IF yapılarını ve GOTO deyimlerini değiştirmek için) eklendi. bir program biriminin, modülün veya dahili prosedürün son ifadesinin yanı sıra END .

    RAM ile çalışmak için işaretçi araçları ve işlevleri tanıtıldı (C diline benzetilerek).

    Dinamik bellekle çalışmak için operatörler (ALLOCATE, DEALLOCATE, NULLIFY) tanıtıldı.

    MODÜL, ÖZEL, GENEL, İÇERİK, ARAYÜZ, KULLANIM, AMAÇ yazılım bileşenleri eklendi.

    Dizi atamasının maskelenmesi (koşullu işleçler kullanılmadan dizi elemanlarına uygulanan mantıksal bir koşul karşılandığında atama) ve ayrıca dizi bölümleriyle çalışma tanıtıldı. Döngülerin kısmen değiştirilmesi için tanıtılan operatör ve WHERE yapısı ( sağ kısım atama operatörü değişmez). Atama maskeleme, dizilerde çalışan hemen hemen tüm işleçler, yapılar ve işlevler için geçerlidir.

    Standart atama, toplama, çıkarma ve bir sayı ile bölme ve çarpma işlemleri, dizilere ve bölümlerle tanımlanan bölümlerine genişletilir. Bu durumda eleman eleman ataması yapılır.

    Öncelikle dizilerle çalışmak için yeni yerleşik işlevler vardır. Dizilerdeki hesaplamalar için işlevler: ALL(mantıksal ürün) ve MASK(mantıksal toplama), COUNT(gerçek öğe sayısı), PRODUCT(dizi öğelerinin çarpımı), SUM(dizi öğelerinin eklenmesi), DOT_PRODUCT (skaler çarpım), MATMUL ( matris çarpımı) ). Dizileri yeniden şekillendirme ve katlama işlevlerinin yanı sıra yardım işlevleri eklendi.

    OOP öğeleri dilde ortaya çıktı. Türetilmiş veri türleri tanıtıldı. Gelecekte kaldırılacak kullanımdan kaldırılan dil özelliklerinin bir listesi ayrıca duyurulmuştur.

    Katma Ek fonksyonlar dizi verileriyle çalışmak için, özellikle TRIM (sondaki boşlukları kaldır) ve REPEAT (bir dizenin birden çok kopyası) işlevleri ve sol ve sağ hizalama işlevleri.

    Fortran 95 (1997)

    Önceki standardın düzeltilmesi. FORALL işleci ve yapısı, dizileri atamak ve hantal döngüleri değiştirmek için WHERE işlecinden ve yapısından daha fazla esneklik sağlayan tanıtıldı. FORALL, herhangi bir bölüm atamasını veya işlecini değiştirmenize izin verir ve özellikle WHERE yan tümcesi, bir matrisin köşegenine erişim sağlar. Bu işleç, döngülerden daha verimli paralelleştirmeye katkıda bulunarak paralel hesaplamada umut verici olarak kabul edilir.

    Fortran 2003 (2004)

    Dilde OOP desteğinin daha da geliştirilmesi. İşletim sistemi ile etkileşim. Aşağıdaki özellikler de eklenmiştir:

    Asenkron veri girişi-çıkışı.

    C dili ile etkileşim araçları

    Dinamik veri yerleşimini iyileştirme

    Standart, paralel bilgi işlem dili (Co-Arrays Fortran) aracılığıyla desteklendiğini varsayar. Ayrıca dizilerin maksimum boyutunun 15'e çıkarılması, yerleşik özel matematik fonksiyonların eklenmesi vb. planlanmaktadır.