• Fortran programlama dili - açıklama, temel komutlar ve işlevler. Fortran programlama dili

    Fortran'ı ilk kez erken çocukluk yıllarımda babamdan duymuştum. 70'li yıllarda delikli kart kullanarak ilkel bir kodu çalıştırmak için üniversitedeki neredeyse tek bilgisayarın önünde saatlerce kuyrukta beklemek 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 yalnızca başka bir yerde kullanılmadığını, gelişmekte olduğunu, talep edildiğini ve hala güncelliğini koruduğunu öğrendiğimde ne kadar şaşırdığımı hayal edin. Eğer siz de bu ana kadar Fortran'ın çoktan ölmüş bir adam olduğuna inanıyorsanız, o zaman işte birkaçı: ilginç gerçekler Neden hala yürüyor?

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

    Aslında okuldaki veya üniversitedeki öğretmenlerden duyduğunuz Fortran, 1954 ile 1957 yılları arasında yaratıldı. Tamamen uygulanan ilk dil olarak tarihe geçti. yüksek seviye, bilişim dünyasında küçük bir atılım yaptı ama aslında pek kullanışlı ve işlevsel değildi. IBM bunu 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 ise modern standartlara göre ilkel olanaklardır.

    En son sürüm 2010 yılında çıktı, adı Fortran 2008 (görebileceğiniz gibi tarih boyunca isim özel olarak yazılmaktan çıktı) büyük harfler), ayırt edici özelliği her türlü paralel hesaplama hem veri işleme hızını hem de işlenen dizilerin boyutlarını olumlu yönde etkilemektedir. Ayrıca Fortran 2015'in 2018 yılında piyasaya sürülmesi planlanıyor. Duyurudan C ile entegrasyonu geliştireceği ve mevcut eksiklikleri gidereceği anlaşılıyor.

    En popüler 30 programlama dili arasında yer almaktadır

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

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

    Fortan için derleyiciler, uzun geçmişi 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ı, kullanışlı uygulama Android için CCTools uygulaması sayesinde artık derleyiciyle birlikte yanınızda götürebilirsiniz. Derleyiciyi iPhone'unuzda da çalıştırabilirsiniz, ancak bu durumda biraz sihir yapmanız gerekir.

    MATLAB ile yarışıyor

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

    Aynı zamanda Fortran'ın popülaritesinin bir kısmını mirasa borçlu olduğunu da kabul etmek gerekir. Yıllar geçtikçe, neredeyse hiç rekabet olmadan, dil çok büyük bir müşteri, kütüphane ve eklenti tabanı edindi. Ayrıca Fortran'ın her bir sonraki sürümü kaçınılmaz olarak öncekileri destekler. Dolayısıyla bilim adamlarının ve mühendislerin bu birliktelikten vazgeçmelerini gerektirecek önemli faktörlerin bulunmadığı bir durum ortaya çıkmıştır.

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

    Nispeten parlak bir geleceği var

    Elbette 10-20 yıl sonra neler olacağını, bu süre içerisinde bilişim dünyasının nasıl değişeceğini öngöremiyoruz. Ancak Fortran'ın olası yeni rakiplerine (Go gibi) bakıldığında en büyük dezavantajı genelleme yapmaktır. Yani Fortran'ın yaratıcıları çok hızlı bir şekilde özetledi hedef kitle Bilim insanları olarak onların görüşleri ve istekleri önceliklidir. Bu nedenle yarın bir moda trendi uğruna “özel siparişlerinden” vazgeçeceklerini hayal etmek zor. Buna dayanarak, başka bir Fortran neslinin cesurca yola çıktığı iddia edilebilir.

    Ve sonra yeni bir versiyon yayınlıyorlar.

    Rusya Federasyonu Eğitim ve Bilim Bakanlığı

    Ural Federal Üniversitesi

    Rusya'nın ilk cumhurbaşkanının adını taşıyan

    PROGRAMLAMANIN TEMELLERİ

    FORTRAN

    öğretici

    Ekaterinburg

    Giriiş. 3

    Tarihsel referans. 5

    Program yapısı.. 8

    Fortran 90 ve Fortran 77 arasındaki farklar. 11

    Bilgi işlem kaynaklarına erişim. 15

    Kümede görevlerin çalıştırılması. 17

    Sunucudaki program metinlerini yeniden yazın. 17

    Programların derlenmesi. 17

    Programın hesapta başlatılması. 19

    Veri tipleri. 22

    Bir tamsayı sabiti. 22

    Gerçek sabit. 23

    Çift duyarlıklı gerçek sabit. 23

    karmaşık sabit. 23

    Karmaşık çift duyarlıklı sabit. 24

    Boole sabiti. 24

    Metin sabiti. 24

    Veri türlerini açıklamaya yönelik operatörler. 26

    INTEGER tamsayı türü. 26

    GERÇEK ve ÇİFT HASSASİYET gerçek tip. 27

    KOMPLEKS ve ÇİFT KOMPLEKS karmaşık tip. 28

    CHARACTER karakter türü. 29

    Boole tipinde MANTIKLI. 29

    Dizilerin BOYUTLARI. otuz

    Özellik PARAMETRE.. 32

    Yerleşik veri türlerinin çeşitleri. 35

    İfadeler, işlemler ve ödevler. 36

    Aritmetik ifadeler. 36

    İlişki ifadeleri. 37

    Boole ifadeleri. 38

    İfadeleri değerlendirme kuralları. 38

    G/Ç operatörleri. 39

    Giriş operatörü DATA.. 39

    Giriş ifadesi READ.. 40

    WRITE çıktı bildirimi. 41

    Ekran çıktı operatörü YAZDIRMA. 42

    G/Ç format bildirimi (FORMAT) 43

    Spesifikasyon X, T.43

    Belirleyici I 44

    Ayırıcılar. 45

    Şartname F.46

    Tekrarlayıcılar. 49

    Şartname E.50

    Teknik Özellikler G..51

    Veri tanımlayıcıları. 52

    Koşul operatörleri. 53

    Koşullu mantıksal operatör. 53

    Aritmetik koşul operatörü. 57

    CASE yapısını seçin. 60

    Döngü operatörleri. 62

    Döngü ifadesi DO.. 62

    DO WHILE döngü ifadesi. 64

    DUR beyanı. 65

    EXIT döngüsünden çıkış ifadesi. 66

    Atlama operatörleri. 67

    Sınır Atlama Operatörü GOTO.. 67

    Hesaplanan atlama ifadesi GOTO.. 67

    Koşullu Atlama Operatörü IF … GOTO.. 68

    Dizilerle çalışma. 69

    Dizi girişi. 69

    Dizi çıkışı. 71

    Dizi işleme. 73

    Altprogramlar..76

    Fonksiyon operatörü. 78

    Alt program fonksiyonu FONKSİYON.. 81

    Altprogram-prosedür ALT PROSEDÜR. 83

    Birlikte çalışmak harici dosyalar. 85

    Operatörü aç Açık dosya.. 85

    Dosya kapatma bildirimi CLOSE. 86

    Dosyalarla çalışma örnekleri. 86

    Edebiyat. 89

    giriiş

    Paralel bilgisayarların karakteristik bir özelliği, bilgi işlemek için çok sayıda işlemcinin aynı anda kullanılması olasılığıdır. Çoklu işlemci kullanımı bilgi işlem sistemleri(MIS), paralel algoritmalar oluşturmak için iki görev belirler: mevcut sıralı algoritmaların paralelleştirilmesi ve paralel hesaplama sistemlerine odaklanan yeni algoritmaların oluşturulması.

    En yaygın programlama teknolojisi paralel bilgisayarlar dağıtılmış belleğe sahip olan şey şu anda MPI'dır. Bu tür sistemlerde paralel süreçlerin etkileşiminin ana yolu mesajların birbirine iletilmesidir. Bu, bu teknolojinin ismine de yansıyor - Mesaj Aktarma Arayüzü (Mesaj Aktarma Arayüzü). MPI standardı, hem her bilgi işlem platformundaki programlama sistemi hem de kullanıcı tarafından programlarını oluştururken gözlemlenmesi gereken bir arayüzü düzeltir. MPI iletişim kütüphanesi, mesaj aktarma mekanizmasını kullanan paralel programlamada evrensel olarak tanınan standart haline geldi.

    Bir MPI programı, her biri kendi işlevini yerine getiren bir dizi bağımsız süreçten oluşur. kendi programı(aynı olması gerekmez) C veya FORTRAN'da yazılmıştır. FORTRAN'da çoğu MPI rutini altprogramlardır (tarafından çağrılır). ÇAĞRI operatörü) ve hata kodu, prosedürün isteğe bağlı son parametresi aracılığıyla döndürülür. İşlev olarak tasarlanan birçok prosedür hata kodu döndürmez. Altprogramların ve adlandırılmış sabitlerin adlarındaki karakterlerin durumunu sıkı bir şekilde gözlemlemeye gerek yoktur. Diziler 1'den indekslenir. C dilindeki yapılar olan MPI nesneleri FORTRAN'da tam sayı tipinde diziler olarak temsil edilir.

    IMM Fortran'da programlanmıştır. Büyük görevler için kullanmanın temel zorluğu, büyük bir görevin parçalarının etkileşimini koordine etmektir. Fortran 90, büyük bir proje üzerinde kolektif çalışmayı kolaylaştıran, nesne yönelimli programlama teknolojisine uygun olarak nesnelerle etkileşimde bulunmak için mekanizmalar içerir. Bunlar, karmaşık verileri düzenlemek için kitaplıkları, yapıları ve türetilmiş veri türlerini tasarlamaya yönelik modüllerdir; bu, dinamik bellek tahsisinin yanı sıra çeşitli kesimlerin (bölümlerin) oluşturulması da dahil olmak üzere bir dizi dizi işleme mekanizmasıdır. Argümanlarının türlerine göre farklılık gösteren tipik işleme prosedürlerini tek bir ailede (bir cinste) birleştirme yeteneği, bir dizi görevde yararlı bir araç olabilir. Veri türlerinin türleri (aileleri), donanımın özelliklerini dikkate alarak türün uygulanmasını özelleştirmeyi kolaylaştırır (örneğin, INTEGER türü, KIND türü kontrolü aracılığıyla uzun veya kısa olarak bildirilebilir). Giriş, çıkış ve çıkışların bildirilmesi gibi bazı stil kuralları geliştirmeye yardımcı olabilir. değiştirilebilir parametreler prosedür, program birimlerinin etkileşimindeki hataları bulmaya yardımcı olur. Veri özelliklerini, yorumları ve diğer öğeleri yazma kuralları, yazılı programların okunmasını kolaylaştırır ve bu da hataların aranmasını hızlandırır.

    Tarihsel referans

    1954 - IBM'in, birinci dil çevirmeni Fortran.

    1958 - FortranII.

    1962 - FortranIV.

    1966 - Fortran 66.

    1978 - Fortran 77.

    1958'de ortaya çıkan Fortran dilinin bir değişikliğine çağrıldı. FortranII ve segmentler arasındaki iletişimi sağlamak için bir alt program kavramını ve paylaşılan değişkenleri içeriyordu.

    1962 yılına gelindiğinde, olarak bilinen bir dilin ortaya çıkışı Fortran IV. Geliştirme 1966'da tamamlandı amerikan standardı ANSI diline (Amerikan Ulusal Standartlar Enstitüsü), dil denir Fortran 66. 1978'de ANSI standardının ikinci versiyonu geliştirildi: dil Fortran 77 yapısal IF, karakter türleri gibi yapısal programlamanın öğelerini içerir.

    ANSI standardının üçüncü versiyonu Fortran 90 1991 yılında uygulamaya konuldu. Fortran 90 dilin gelişimidir Fortran 77, yani yazılmış bir program Fortran 77 derlenebilir ve program olarak çalıştırılabilir. Fortran 90. Standart Fortran 90 Standardı dizi işlemleri için birçok yeni olanak, yeni hassas belirleme yöntemleri, serbest format sunar kaynak koduözyineleme, dinamik diziler vesaire.

    Mevcut standart dildeki programlar Fortran 77 derleyiciler tarafından başarıyla derlenebilir Fortran 90 hiçbir değişiklik olmadan. Ancak programın dilindeki yapısı Fortran 90 eşdeğer bir programın yapısından önemli ölçüde farklı olabilir. Fortran 77. Programcı iki stili karıştırmaktan sakınmalıdır.

    Aynı ölçüde derleyici Fortran 90 Bazı uyumsuzluk kodlarının raporlanmasına ilişkin açıklamaların sağlanmasını gerektirir; örneğin, bir dizi standart dışı kuralın aşılmasına izin verilen operatörlerin veya değişkenlerin kullanımı.

    Fortran, modern programlama dilleri arasında gururla yer almaktadır. İlk üst düzey programlama dillerinden biridir ve başlangıcından bu yana karmaşık hesaplama problemlerini çözmek için tasarlanmıştır. Uygulamalı programcıların ortamında Fortran başlangıçta şüpheyle karşılandı, çünkü yüksek seviyeli bir dilde programlamanın kolaylığının bedelinin hesaplama hızında önemli bir kayıp olacağına inanılıyordu. Karmaşık süreçlerin modellenmesi veya büyük miktarda bilginin işlenmesi söz konusu olduğunda hesaplamaların hızı, dil, bilgi işlem platformu ve programlama teknolojisi seçimini belirleyen belirleyici bir faktördür.

    Fortran programlama dili esas olarak bilimsel hesaplama için kullanılır. 1954 yılında icat edilen en eski üst düzey programlama dilidir ve onu Lisp (1958), Algol (1958) ve COBOL (1959) takip etmektedir. Fortran'da yazılan bilimsel kütüphanelerin sayısı ve özel çevirmen-derleyicilerin oluşturulması, dilin günümüzde kullanılmasını mümkün kılmaktadır. Ek olarak, endüstriyel üretimde kullanılmak üzere bu dili serpiştiren vektörizasyon, yardımcı işlemciler ve paralellik için birden fazla hesap makinesi oluşturulmuştur. modern dünya.

    IBM radyo mühendisi John Backus'un 1954 yılında "Ön Rapor", "IBM Matmal Transmula TRANslating System için Spesifikasyonlar" başlıkları altında yayınladığı makaleler FORTRAN teriminin ortaya çıkmasına neden oldu. Daha sonra, Fortran programlama dili için ilk derleyiciyi (IBM 704 için 25.000 satır) yazmak, liderliğini yaptığı ekibin tamamının iki yıllık bir çabasını daha aldı.

    Dilin adı ilk başta büyük harfle yazılmış FORTRAN'dı ve Fortran 77'ye kadar olan dil versiyonlarını belirtmek için kullanılıyordu. ücretsiz sürümler Fortran 90'dan bu yana sözdizimi. Fortran 77 standardında küçük harfler dilin bir parçası değildir, ancak çoğu derleyici standarda ek olarak bunları da destekler.

    Günümüzde Fortran programlama dili, kullanılan baskın programlama dilidir. mühendislik uygulamaları. Bu nedenle mezun mühendislerin Fortran kodunu okuyabilmesi ve değiştirebilmesi önemlidir. Zaman zaman sözde uzmanlar, dilin popülaritesini kaybedeceğini ve yakında kullanımının tamamen sona ereceğini tahmin ediyor.

    Bu tahminler her zaman başarısızlıkla sonuçlandı. Fortran tarihteki en kararlı bilgisayar programlama dilidir. Fortran programlama dilinin hayatta kalmasının ve hayatta kalmaya devam etmesinin ana nedenlerinden biri atalettir. yazılım. Bir şirketin bir yazılım ürününe çok fazla kaynak ve muhtemelen milyonlarca dolar harcadıktan sonra yazılımı başka bir dile çevirmesi pek olası değildir.

    Fortran'ın temel avantajı, uluslararası kuruluşlar ANSI ve ISO tarafından standartlaştırılmış olmasıdır. Bu nedenle, eğer bir program ANSI dilinde yazılmışsa, Fortran 77 derleyicisine sahip herhangi bir bilgisayarda çalışacaktır. önemli bilgi. Böylece, nesne yönelimli programlama dili Fortran'ın programları farklı platformlarda mevcuttur. programlama cihazları.

    Dil platformu oluşturmanın aşamaları:

    1. 1954-1957'de ilk derleyici sıfırdan geliştirildi. O günlerde "üst düzey diller" (=HLL) yoktu, çoğu işletim sistemleri basitti ve hafıza küçüktü, yaklaşık 16 Kb civarındaydı. İlk derleyici IBM 704 üzerinde çalışıyordu. Bu HLL dili, montaj dili programlamasından çok daha etkiliydi ve zamanında çok popülerdi.
    2. 1958'de FORTRAN II yayımlandı. FORTRAN III aynı yıl geliştirildi, ancak hiçbir zaman genel üretime sunulmadı.
    3. FORTRAN IV 1961'de kuruldu. ORTAK ve EQUIVALENCE operatörlerinin uygulanması gibi iyileştirmeler içeriyordu.
    4. 1962 yılında ASA komitesi nesne yönelimli programlama dili Fortran için bir standart geliştirmeye başladı. Bu, satıcının onu her yeni bilgisayarda kullanmasına izin verdi. Ve bu gerçek HLL'yi daha da popüler hale getirdi, dil Apple sistemleri ve TRS80.
    5. 1967 yılında dünyanın ilk HLL standardı olan FORTRAN 66 piyasaya sürüldü. Standardın yayınlanması, dilin diğerlerinden daha yaygın olarak uygulanması anlamına geliyordu. 1970'lerin ortalarına gelindiğinde hemen hemen her bilgisayar, mini veya ana bilgisayar standart FORTRAN 66 diliyle donatılmıştı: If ifadeleri, goto ifadeleri ve spagethi programları kullanılan dil. Bu tür yapılandırılmış programlama 60'lı ve 70'li yıllarda popüler hale geldi.
    6. "Fortran", özellikle FMS sistemindeki delikli kartlarda mevcuttu ve Fortran 90 "özgür" bir sözdizimi sunana kadar kaynaklarının düzenini optimize ediyordu. İçinde Fortran dizisinin kodu 7. sütundan başlar ve 72 bin karakteri geçmemelidir.

    Fortran 90'dan önce 7. ve 72. sütunlar arasındaki boşlukların önemli olmadığını da belirtmek gerekir. Yani "DO I = 1,5" döngüsü "DOI = 1,5" olarak da yazılabilir. Öte yandan "DO I = 1,5", "DOI = 1,5" ile eşdeğerdir.

    Nastran, NAG ve IMSL-Fortran kütüphanelerinde çok sayıda endüstriyel kod yazılmıştır. Yeni versiyonların önceki versiyonlarla uyumluluğu önemlidir. Bu nedenle Fortran 90, Fortran 77 ile tam uyumludur. sonraki sürümler Standart zaten uyumsuzluklar getirmiştir.

    Kısa süre sonra daha gelişmiş Fortran 90 ve Fortran 95 dilleri de mevcut Fortran-2003 standardına güncellendi. Modern derleyicilerin mevcut tüm sistemlerde süresiz olarak çalıştıkları göz önüne alındığında Windows sürümleri ve hatta 64 bit işlemcileri bile destekler. Bu arada, üreticiler zamanın trendini fark ettiler ve Linux için derleyicileri nesne yönelimli programlama dili Actor Fortran biçiminde sunuyorlar.

    Bir programlama dili kullanmanın önkoşulları

    Fortran'ın hala yaygın olarak kullanılan bir programlama dili olduğunu ve esas olarak keşif alanında kullanıldığını anlamalısınız. Kapsamlı ve karmaşık matematiksel hesaplamaların yapıldığı fizik veya mühendislik gibi klasik uygulamalar. Farklı derleyiciler için mevcut olan çok faydalı, kapsamlı matematik kütüphaneleridir. Özetle, bugün tartışılabilir. Fortran dili hala çeşitli nedenlerden dolayı kullanılmaktadır:

    • Yıllar içinde geliştirilen çok sayıda işlevsel kütüphanenin mevcudiyeti.
    • Çok şey gerektiren "Fortran" yazılımının kullanılabilirliği önemli kaynaklar Başka bir dile geçerken geliştirme için çok maliyetli olduğu düşünülür.
    • Çok hızlı üretim yapan yerleşik Fortran işlevlerine sahip güçlü derleyicilere sahip olmak yürütülebilir dosyalar.
    • Dil, özel bir bilgisayar kursuna sahip olmayan mucit için daha erişilebilirdir.

    Artık pek çok bilimsel program, derleyicileri çoğu makinede bulunan C ve C++ dillerinde yazılmıştır. Diğer derlenmiş diller bazen bilimsel hesaplama için ve özellikle Scilab veya Matlab gibi programlar için kullanılır. İkincisi aynı zamanda geliştirilen BLAS ve LAPACK kütüphanelerini de içerir. Fortran programlama. Matlab başlangıçta üniversitelere ve araştırma merkezlerine dağıtılan bir Fortran programıydı.

    Tom Lahey artık "tek" genel derleyici olmasına rağmen, Lahey Bilgisayar Sistemleri birçok programcı tarafından kullanılmaya devam ediyor. Lahey birkaç yıldır Fujitsu ile çalışıyor, Lahey Fortran ayrıştırıcısına odaklanıyor ve Fujitsu da kod oluşturucu üzerinde çalışıyor. Windows için geçerli Derleyici Paketi Lahey Fujitsu Fortran 95 (LF95) olarak adlandırılır ve şu adreste mevcuttur: çeşitli versiyonlar bunlardan bazıları aynı zamanda entegre görsel stüdyo.NET 2003.

    Ayrıca LF95 Express'in kendi IDE'si olmayan düşük maliyetli bir versiyonu da bulunmaktadır. Güncel sürüm 7.1'dir. Linux'ta, Linux için Lahey / Fujitsu Fortran 95 v6.2 derleyicisi tarafından çağrılır ve iki sürümde mevcuttur farklı versiyonlar. Örneğin, Profesyonel sürüm OpenMP v2.0 uyumluluğu, basit bir Winteracter Başlangıç ​​Kiti grafik motoru, bir matematik kitaplığı ve bilimsel kütüphane Fujitsu 2 rutinleri.

    Bir diğer üretici ise Absoft'tur. Derleyiciler ve C++ yalnızca Windows ve Linux için değil, aynı zamanda Macintosh'taki OS X için de mevcuttur. Bu derleyiciler, üç platforma da ihtiyaç duyan veya desteklemek isteyen geliştiricilerin ilgisini çekecektir. Ne yazık ki Absoft, Linux altında 32-bit ve 64-bit sürümler arasında ayrım yapmaktadır; şu anda 64-bit Linux için Fortran 95'in 10.0 sürümü kullanılmaktadır.

    Piyasada nispeten yeni olan EKOPath Compiler Suite'tir. Bu, ayrıca ayrı olarak temin edilebilen ve esas olarak 64 bit AMD kullanıcılarını hedefleyen C++ derleyicilerinden ve Linux Fortran geliştirme ortamından oluşur. Aynı zamanda Intel EM64T üzerinde de çalışır. Ayrıca Microsoft, bir zamanlar Fortran için "ucuz bir pazar" bulmaya çalışmış ve Microsoft Powerstation'ı pazara sunmuştu.

    Belki pazar yazılım devi için çok küçüktü ama Digital 1997'de kodun bir kısmını devraldı ve Digital'in Unix ve OpenVMS derleyicilerindeki deneyimini kullandı. Bu, hala çok başarılı olan Dijital Görsel Fortran'ın doğuşuydu. Bir noktada Digital daha sonra Compaq'a taşındı ve derleyici şu şekilde sonlandırıldı: şimdiki versiyonu Compaq Visual Fortran (CVF) v6.6.

    "Normal" 32 bit platformlara ek olarak, Intel Itanium ve Intel EM64T gibi çeşitli 64 bit derleyiciler de vardır. Teslimat kapsamı açısından "acil" olmasalar da, Ücretsiz indirin Intel Premier Web Destek Sistemi aracılığıyla.

    Tek seferlik, biraz hantal bir kayıttan sonra, birkaç haftada bir yeni güncellemelerle, onu bir yıl boyunca kullanabilirsiniz. Daha eski sürümler bile mevcut olmaya devam edecek.

    Fortran programı bir dizi metin satırından oluşur. Metin belirli bir sözdizimine uymalıdır. Örneğin: yarıçapı r, alanı c olan bir daire.

    Bu program gerçek yarıçapı okur ve yarıçapı r olan bir dairenin alanını hesaplar:

    "Yarıçap r:"oku (*, *) r;

    alan = 3,14159 * r * r;

    (*, *) "Alan =" yazın;

    "C" ile başlayan satırlar yorum niteliğinde olup, programı daha okunaklı hale getirmekten başka bir amacı yoktur. Başlangıçta tüm Fortran programları büyük harflerle yazılıyordu. Çoğu programcı artık daha okunaklı olduğu için küçük harf yazıyor.

    Bir Fortran programı genellikle bir ana program veya sürücüden ve çeşitli alt programlardan, prosedürlerden veya alt programlardan oluşur. Ana programın yapısı:

    • programın adı;
    • beyanlar;
    • ifadeler;
    • durmak;
    • son.

    İtalik olanlar harfiyen metin olarak değil, daha ziyade Genel açıklama. Stop ifadesi isteğe bağlıdır ve program zaten sona ulaştığında duracağından gereksiz görünebilir, ancak yürütme akışının sonlandırıldığını vurgulamak için programı her zaman bir stop ifadesiyle sonlandırmanız önerilir.

    Sütun konumu kuralları

    Fortran 77 serbest biçimli bir dil değildir ancak kaynak kodunu biçimlendirmek için çok katı kurallara sahiptir. En önemli kurallar sütun düzeni kuralları şunlardır:

    • Albay. 1: Boş veya yorumlar için "c" veya "*".
    • Albay. 2-5: operatör etiketi.
    • Albay. 6: Bir önceki satırın devamı.
    • Albay. 7-72: iddia.
    • Albay. 73- 80: Sıra numarası.

    İlk sütunda "c" veya yıldız işaretiyle başlayan Fortran satırı bir yorumdur. Yorumlar programın herhangi bir yerinde görünebilir. İyi yazılmış olmaları programın okunabilirliği açısından kritik öneme sahiptir. Ticari kodlar Fortran genellikle yorumların yaklaşık %50'sini içerir. kullanan programlarla da karşılaşabilirsiniz. Ünlem işareti(!). Bu, Fortran 77'de oldukça standart dışıdır ancak Fortran 90'da buna izin verilmektedir.

    Ünlem işareti satırın herhangi bir yerinde görünebilir. Bazen bir ifade tek satıra sığmaz, bu durumda ifadeyi iki veya daha fazla satıra bölüp konumda devam karakterini kullanmak mümkündür.

    1. C23456789 - Bu, sütunun konumunu gösterir.
    2. "C"- sonraki ifade fiziksel hatların iki bölgesinden geçer.
    3. Alan = 3,14159265358979+ * r * r.

    Fortran 77'den başlayarak boş alanlar dikkate alınmaz. Bu nedenle, Fortran 77'deki tüm boşluklar kaldırılırsa, operatörler için neredeyse okunamaz olmasına rağmen program sözdizimsel olarak hala doğrudur.

    Fortran'daki değişken adları 1-6 karakterden oluşur. a'dan z'ye harfler ve 0-9 arasındaki sayılar. İlk karakter bir harf olmak zorunda. Fortran 90 isteğe bağlı uzunlukta değişken adlara izin verir. Fortran 77 büyük ve küçük harf ayrımı yapmaz, aslında tüm girdilerin büyük harf olduğunu varsayar. Ancak hemen hemen tüm F77 derleyicileri küçük harfleri kabul eder. Her değişken bir bildirimde tanımlanmalıdır. Bu değişkenin türünü ayarlar. En yaygın değişken listeleri şunlardır:

    • tamsayı;
    • gerçek;
    • çift ​​​​hassasiyet;
    • karmaşık;
    • mantıklı;
    • karakter.

    Değişken listesi virgülle ayrılmış adlardan oluşmalıdır. Her değişken tam olarak bir kez bildirilmelidir. Değişken bildirilmezse, F 77 türü belirlemek için bir dizi örtülü kural kullanır. Bu, "in" harfleriyle başlayan tüm değişkenlerin tam sayı, diğerlerinin ise gerçek olduğu anlamına gelir. Birçok eski F77 programı bu örtülü kuralları kullanır, ancak programcıların bunu yapmaması gerekir, çünkü değişkenleri tutarsız bir şekilde bildirirlerse programdaki hata olasılığı önemli ölçüde artar.

    Fortran 77'nin tamsayı değişkenleri için yalnızca bir türü vardır. Tamsayılar genellikle 32 bitlik (4 bayt) değişkenler olarak saklanır. Bu nedenle tüm tamsayı değişkenlerin m'nin yaklaşık 2*109 olduğu [-m, m] aralığında değerler alması gerekir.

    F 77'de iki tane var farklı şekiller kayan nokta değişkenleri için gerçek çift duyarlık denir. Bazı sayısal hesaplamalar çok yüksek hassasiyet gerektirir ve çift hassasiyet kullanılmalıdır. Genellikle gerçek 4 baytlık bir değişkendir ve çift ise 8 bayttır, ancak bu makineye bağlıdır.

    "Fortran"ın standart dışı sürümleri, 8 baytlık kayan nokta değişkenlerini belirtmek için gerçek * 8 sözdizimini kullanır. Bazı sabitler bir programda birçok kez görünür. Bu nedenle programın başında bunların yalnızca bir kez tanımlanması arzu edilir. Bunun için parametre operatörü kullanılır. Ayrıca programları daha okunaklı hale getirir. Örneğin bir dairenin alanı için program şu şekilde yazılmalıdır.

    Parametre operatörü söz dizimi (isim = sabit, ..., isim = sabit). Parametre operatörü için kurallar:

    1. Parametre ifadesinde tanımlanan "değişken", bir değişken değil, değeri hiçbir zaman değişmeyen bir sabittir.
    2. "Değişken" en fazla bir parametre ifadesini görüntüleyebilir.
    3. Operatör parametresi ilk çalıştırılabilir operatörden önce gelmelidir

    Bir parametreyi kullanmak için bazı iyi nedenler; yazım hatalarını azaltmaya yardımcı olur, bir programda birçok kez görünen bir sabiti kolayca değiştirebilir.

    Boole ifadeleri yalnızca .TRUE değerine sahip olabilir. veya yanlış. ve ilişkisel operatörler kullanılarak karşılaştırma yoluyla oluşturulabilir.

    "gibi semboller<» или «=» для сравнения в F 77, но можно использовать правильную двухбуквенную аббревиатуру, заключенную точками. Однако такие символы разрешены в Fortran 90.

    Mantıksal ifadeler, açık bir anlamı olan "VE", "VEYA", "DEĞİL" mantıksal operatörleriyle birleştirilebilir. Doğruluk değerleri boole değişkenlerinde saklanabilir. Atama aritmetik atamaya benzer.

    Örnek: mantıksal a, ba = .TRUE.b = a .AND. 3.LT. 5/2

    Öncelik sırası çok önemlidir. Kural, önce aritmetik ifadelerin, sonra ilişkisel operatörlerin ve son olarak mantıksal operatörlerin değerlendirilmesidir. Bu nedenle b'ye .YANLIŞ atanacaktır. Yukarıdaki örnekte boole değişkenleri Fortran'da nadiren kullanılmaktadır ancak "if" ifadesi gibi koşullu ifadelerde sıklıkla kullanılırlar.

    Sabit ve atama

    Bir ifadenin en basit biçimi bir sabittir. 6 veri tipine karşılık gelen 6 tip sabit vardır. İşte bazı tam sayı sabitleri: 10-10032767+15

    Gerçek sabitler: 1.0-0.252.0E63.333E-1.

    E gösterimi, sabiti "E" harfinden sonraki kuvvete yükseltilen 10 ile çarpmak anlamına gelir. Bu nedenle, 2.0E6 iki milyon ve 3.333E-1 ise yaklaşık üçte biridir. İzin verilen en büyük reel değerden daha büyük olan veya yüksek hassasiyet gerektiren sabitler için çift hassasiyet kullanılmalıdır. Gösterim, "E"nin "D" ile değiştirilmesi dışında gerçek sabitlerle aynıdır.

    Örnek: 2.0D-11D99.

    Burada 2.0D-1 beşte bir çift duyarlıktır, 1D99 ise bir ve ardından 99 sıfır gelir.

    Bir sonraki tür karmaşık sabitlerdir. Bunlar, virgülle ayrılmış ve parantez içine alınmış bir çift sabit (tam sayı veya gerçek) ile gösterilir.

    Örnekler şunlardır: (2, -3) (1,9,9E-1). İlk sayı reel kısım, ikincisi ise imajiner kısımdır.

    Beşinci tip boole sabitleridir. Yalnızca iki anlamdan birine sahip olabilirler:

    Harf içeren noktaların yazılması gerektiğini lütfen unutmayın.

    Son tür karakter sabitleridir. En yaygın olarak dize adı verilen bir karakter dizisi olarak kullanılırlar. Kesme işaretleri (tek tırnak işaretleri) içine alınmış rastgele bir karakter dizisinden oluşurlar:

    "Her şey yolunda!"

    "Güzel bir gün"

    Dize ve karakter sabitleri büyük/küçük harfe duyarlıdır. Dizenin kendisinde gerçek bir kesme işareti olmasını istiyorsanız sorun ortaya çıkar. Bu durumda kesme işaretini iki katına çıkarmanız gerekir: "Bu" "güzel bir gün", yani "Ne harika bir gün"

    Koşullu ifadeler herhangi bir programlama dilinin temel bileşenleridir. Fortran'da bu ifadelerden en yaygın olanı, aslında birkaç biçimi olan "if" ifadesidir.

    En basiti Fortran açıklamasındaki "if" mantıksal ifadesidir: if (mantıksal ifade) çalıştırılabilir ifade.

    Bu, örneğin x'in mutlak değerini tanımlarken tek satıra yazılmalıdır:

    if (x.LT.0) x = -x

    Bir "if"te birden fazla ifade yürütülecekse aşağıdaki sözdizimi kullanılmalıdır: if (mantıksal ifade) ardından ifadelerendif.

    Yürütme akışı yukarıdan aşağıya doğru. Koşullu ifadeler, doğru bir değer bulunana kadar sırayla değerlendirilir. Daha sonra uygun kod yürütülür ve kontrol "if" sonundan sonraki ifadeye geçer.

    if ifadeleri birden fazla düzeye yerleştirilebilir. Okunabilirliği sağlamak için doğru girintiyi kullanmak önemlidir. İşte bir örnek:

    if (x .GT. 0) Thenif (x .GE. y) Thenwrite(*,*) "x pozitiftir ve x >= y"elsewrite(*,*) "x pozitiftir ancak x< y"endifelseif (x .LT. 0) thenwrite(*,*) "x is negative"elsewrite(*,*) "x is zero"endif

    Takip edilmesi zor olacağından programcılar birçok seviyedeki "if" ifadesini iç içe kullanmaktan kaçınmalıdır.

    F 77 derleyicisi ile herhangi bir Unix iş istasyonunu kullanabilirsiniz.Deneyimli programcılar Sun veya Dec'i kullanmanızı önerir.

    Bir Fortran programı belirli sözdizimi kurallarına uyan düz metinden oluşur. Buna kaynak kodu denir. Programcılar kaynak kodunu yazmak için bir düzenleyici kullanır. Unix'teki en yaygın editörler emacs ve vi'dir, ancak yeni başlayanlar için biraz zor olabilirler. X pencereleri altında çalışan xedit gibi daha basit bir düzenleyici kullanabilirsiniz.

    Fortran programı yazıldıktan sonra ".f" veya ".for" uzantılı bir dosyaya kaydedilir ve program makine tarafından okunabilir bir forma çevrilir. Bu, derleyici adı verilen özel bir program kullanılarak yapılır. Fortran 77 derleyicisine genellikle f77 adı verilir. Derleme sonucuna varsayılan olarak biraz şifreli bir ad olan "a.out" verilir, ancak isterseniz farklı bir ad seçebilirsiniz. Programı çalıştırmak için "a.out" gibi yürütülebilir dosyanın adını girmeniz yeterlidir. Derleyici kaynak kodunu nesne koduna çevirir ve bağlayıcı veya yükleyici de onu yürütülebilir bir dosyaya çevirir. Gördüğünüz gibi, bu prosedür hiç de karmaşık değil ve her kullanıcı tarafından kullanılabilir.

    Simülasyon günümüz fabrikalarında en sık kullanılan üretim yöntemlerinden ve diğer sistemlerden biridir. Çoğu simülasyon modeli, Actor Fortran nesne yönelimli programlama dili veya geleneksel bir dilde yazılmış bir simülasyon yazılım paketi kullanılarak oluşturulur. Bu araçların sınırlamaları vardır. Nesneye yönelik teknoloji birçok alanda giderek daha fazla benimseniyor ve iş sistemi modellemesine daha esnek ve verimli bir yaklaşım vaat ediyor.

    Simula Fortran programlama, FORTRAN adı verilen ortak bir bilimsel programlama diliyle karşılaştırılır. Tipik bir askeri simülasyon modeli hem SIMULA hem de FORTRAN'da programlanmıştır. SIMULA programı FORTRAN versiyonundan %24 daha kısaydı.

    SIMULA versiyonu da daha basittir ve simüle edilen modelin daha iyi bir resmini verir. Öte yandan, nesne yönelimli programlama dili Simula Fortran ile üretim çalışmalarının çalışma süreleri %64 daha hızlıdır. Artıları ve eksileri tartıldığında, SIMULA'nın daha yüksek personel maliyetleri ve daha düşük bilgisayar maliyetleriyle giderek daha karlı bir yazılım olacağını gösteriyor.

    CUDA, yüksek performanslı uygulama geliştiricilerinin, bilimsel hesaplama ve süper bilgisayar performans testi için tanıdık bir dil olan Fortran'ı kullanarak GPU'ların gücünden nasıl yararlanabileceklerini gösteriyor. Yazarlar önceden paralel hesaplama deneyimi olmadığını varsaymakta ve yalnızca temelleri ve en iyi uygulamaları ele almaktadır. CUDA Fortran kullanan GPU hesaplamanın verimliliği, hedef GPU mimarisi tarafından sağlanır.

    Bilim adamları ve mühendisler için CUDA Fortran, kodun hesaplama açısından yoğun kısımlarını belirleyecek ve veri yönetimi, paralellik ve performans optimizasyonu için kodu yeniden şekillendirecek. Bütün bunlar, programı başka bir dile yeniden yazmaya gerek kalmadan Fortran'da yapılır. Her konsept gerçek örneklerle gösterilmiştir, böylece kodun performansını hemen görebilirsiniz.

    Belki bir gün küresel bir şirket "nihayet küreselleşecek" ve Fortran'a artık ihtiyaç olmadığına karar verecek, ama şimdi değil. Modern Fortran'ın mevcut yetenekleri sayesinde birçok programcı ve bilim adamı onun arkasında geleceği görüyor. Ayrıca dünyada modern derleyicilerin geliştirilmesiyle geçinen ve bu süreçten iyi para kazanan yeterince üretici var.

    50'li yaşların ortası. programlama alanında hızlı ilerleme ile karakterize edilir. Makine kodlarında programlamanın rolü azalmaya başladı, makineler ve programcılar arasında aracı görevi gören yeni tip programlama dilleri ortaya çıkmaya başladı. İkinci ve üçüncü nesil programlama dillerinin zamanı geldi

    50'li yılların ortasından beri. 20. yüzyıl ilk üst düzey programlama dillerini (üst düzey dil) oluşturmaya başladı. Bu diller makineden bağımsızdı (belirli bir bilgisayar türüne bağlı değildi).

    Ancak her dil için kendi derleyicileri geliştirildi - derlemeyi gerçekleştiren program.

    Derleme - yüksek seviyeli bir kaynak dilde yazılmış bir programın, makine koduna yakın düşük seviyeli bir dilde eşdeğer bir programa çevrilmesi (mutlak kod, nesne modülü, bazen montaj dili)

    FORTRAN programlama dili

    İlk üst düzey dil, 1954 ile 1957 yılları arasında IBM'de John Backus liderliğindeki bir grup programcı tarafından oluşturuldu ve bu, programlama dillerinin geliştirilmesinde bir sonraki aşamaydı. FORTRAN programlama diliydi. Bilimsel ve teknik hesaplamalar için tasarlandı. Fortran adı FORmulaTRANslator'ın (Formula Translator) kısaltmasıdır.

    Dil geçmişi

    1953'ün sonunda John Backus, IBM 704 PC'de programlama için çeviriciye etkili bir alternatif geliştirmeye başlamayı önerdi. 1954'ün ortalarında Fortran dilinin taslak spesifikasyonu tamamlandı. Fortran'ın ilk kılavuzu, Nisan 1957'de gönderilen ilk derleyiciyle birlikte Ekim 1956'da yayınlandı. Derleyici optimizasyon yapıyordu çünkü müşteriler, çeviricininkinden daha düşük performansa sahip kod üretemeyen yüksek seviyeli bir programlama dili kullanmayı reddetti.

    O zamanlar topluluk yeni programlama yöntemine şüpheyle yaklaşıyordu ve Fortran'ın programlamayı daha hızlı ve daha verimli hale getireceğine inanmıyordu. John Backus'un kendi deyimiyle, çalışmalarının çoğu "tembel olmayı" hedefliyordu. Montajcıda IBM 701 için programlar yazmayı çok sevmiyordu.

    Dil, hesaplama açısından yoğun programlar yazmak için bilim adamları tarafından geniş çapta benimsenmiştir. Karmaşık veri tipinin dahil edilmesi onu özellikle teknik uygulamalar için uygun hale getirmiştir.

    1960 yılına gelindiğinde IBM 709, 650, 1620, 7090 bilgisayarları için Fortran versiyonları mevcuttu ve büyük popülaritesi, rakip bilgisayar üreticilerini kendi bilgisayarları için Fortran derleyicileri yaratmaya teşvik etti. Böylece 1963 yılına gelindiğinde farklı platformlar için 40'tan fazla derleyici mevcuttu. Fortran'ın yaygın olarak kullanılan ilk programlama dili olarak kabul edilmesinin nedeni budur.

    SSCB'de Fortran

    Fortran, SSCB'de Batı'ya göre daha sonra ortaya çıktı, çünkü ilk başta Algol ülkemizde daha umut verici bir dil olarak görülüyordu. 1960'lı yıllarda neredeyse tüm hesaplamaların Fortran programları kullanılarak yapıldığı CERN'deki meslektaşlarıyla Sovyet fizikçilerinin 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 fazla ün kazanmadı. Fortran'ın yaygın tanıtımı, 1968'de BESM-6 makinesi için FORTRAN-DUBNA derleyicisinin yaratılmasından sonra başladı. 1972'de ortaya çıkan ES bilgisayarlarında zaten bir Fortran çeviricisi vardı (diğer yazılımlarla birlikte IBM/360'tan "ödünç alınmıştır")

    Modern Fortran. Dilin avantajları

    Fortran, esas olarak bilimsel ve mühendislik hesaplamaları için yaygın olarak kullanıldı. Pek çok kütüphanenin 50 yılı aşkın süredir yazılması nedeniyle sayısal problemlerin çözümü için oldukça uygundur, bu nedenle dil şu anda kullanılmaktadır ve yakın gelecekte unutulma tehlikesiyle karşı karşıya değildir. Ancak bugüne kadar başarılı tasarım nedeniyle değil, üzerine yazılan çok sayıda program nedeniyle, bunu değiştirmenin ve dahası yeniden yazmanın hiçbir anlamı yok.

    Muhtemelen, bir şeyi hızlı bir şekilde hesaplamak istiyorsanız, Fortran en iyi seçeneklerden biri olacaktır. Dil tam olarak bunun için icat edildi.

    Yapısı, derleyicinin hesaplamaları çok iyi optimize edebilmesine katkıda bulunur.

    Örneğin bilim adamları arasında, herhangi bir matematik probleminin Fortran'da zaten bir çözümü olduğuna dair bir söz vardır ve aslında binlerce Fortran paketi arasında, matrisleri çarpmak için bir paket ve karmaşık integral denklemleri çözmek için bir paket bulunabilir. ve daha birçokları.

    Örneğin bilim adamları arasında, herhangi bir matematik probleminin Fortran'da zaten bir çözümü olduğuna dair bir söz vardır ve aslında binlerce Fortran paketi arasında matris çarpımı için bir paket ve karmaşık integral denklemleri çözmek için bir paket bulunabilir ve çok, çok daha fazlası. Onlarca yıl boyunca bu tür paketlerin bir kısmı oluşturuldu ve bugüne kadar bilim camiasında hala popüler, örneğin - IMSL ( İngilizce).

    Bu kütüphanelerin çoğu aslında insanlığın malıdır: kaynak kodu mevcuttur, iyi belgelenmiştir, hataları ayıklanmıştır ve çok etkilidir. Bu nedenle, FORTRAN kodunu otomatik olarak modern programlama dillerine dönüştürmek için düzenli olarak girişimlerde bulunulmasına rağmen, bunları bırakın diğer programlama dillerinde yeniden yazmak şöyle dursun, 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ş olup, özellikle OOP olmak üzere modern programlama teknolojilerinin kullanılmasına izin vermektedir.

    Dil standartlarının gelişimi

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

    FORTRAN 66 (1972) IBM standardına dayanmaktadır 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üzeltilmesi. FORALL operatörü ve yapısı, dizileri atamak ve hantal döngüleri değiştirmek için WHERE operatöründen ve yapısından daha fazla esnekliğe izin vererek tanıtıldı. FORALL herhangi bir bölüm atamasını veya işlecini değiştirmenize olanak tanır ve özellikle WHERE yan tümcesi bir matrisin köşegenine erişim sağlar. Bu operatörün paralel hesaplamada umut verici olduğu düşünülüyor ve paralelleştirmenin döngülerden daha verimli bir şekilde uygulanmasına katkıda bulunuyor. 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 hesaplama dili (Co-Arrays Fortran) aracılığıyla desteklendiğini varsayar. Ayrıca dizilerin maksimum boyutunun 15'e çıkarılması, yerleşik özel matematiksel işlevlerin eklenmesi vb. planlanmaktadır.

    Derleyiciler

    Dilin ilk geliştirilmesinden bu yana Fortran derleyicileri IBM tarafından üretilmektedir. Şu anda IBM, çeşitli sürümlerin geliştirme geçmişi 1964'e kadar uzanan IBM System z ana bilgisayarları için VS Fortran optimizasyon derleyicisinin yanı sıra PowerPC mimarisine (AIX, Linux ve Linux) dayanan platformlar için XL Fortran derleyicisini tedarik etmektedir. Blue Gene süper bilgisayarı (Macintosh bilgisayarlarının PowerPC işlemcileri kullandığı 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ışmasının sonucu olan çok gelişmiş optimize ediciler içerir. IBM iş ortağı Absoft, IBM Fortran XL derleyicisini temel alarak, PowerPC (Linux, Mac OS X) ve Intel (Linux, Mac OS X, Windows) işlemcilerini temel alan sistemler için Absoft Pro Fortran derleyicisini oluşturmuş ve tedarik etmiştir. .

    GNU Özgür Yazılım Vakfı, hemen hemen her platformda kullanılabilen ve GCC ile tamamen uyumlu olan açık kaynaklı bir Fortran 77 derleyicisi olan g77'yi yayınladı. Artık yerini, Fortran-95 standardının neredeyse tüm yapılarını ve Fortran-2003 ve Fortran-2008 standartlarının birçok yapısını uygulayan GFortran derleyicisi aldı. Ayrıca Fortran-77 ile geriye dönük olarak tamamen uyumludur. Ayrıca GCC'ye dayalı bir Fortran-95 derleyicisi oluşturmak için bağımsız bir g95 projesi de bulunmaktadı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. Fortran ilk yüksek seviyeli dillerden biri olduğu için dilin ifade araçları başlangıçta çok zayıftı. Daha sonra Fortran'a yapısal, işlevsel ve hatta nesne yönelimli programlamanın karakteristiği olan birçok sözcük yapısı eklendi.

    Fortran için sütun işaretlerine sahip delikli kart.

    Programların yapısı başlangıçta delikli kartlardan gelen girdilere odaklanmıştı ve bu özel duruma uygun bir dizi özelliğe sahipti. Böylece, 1. sütun metni yorum olarak işaretlemeye hizmet etti (sembolüyle) C), 1'den 5'e kadar etiket alanı vardı ve 7'den 72'ye kadar operatörün veya yorumun asıl metni vardı. 73'ten 80'e kadar olan sütunlar, kartların numaralandırılmasına (yanlışlıkla dağılmış bir desteyi geri yüklemek için) veya kısa bir yoruma hizmet edebilir, bunlar çevirmen tarafından göz ardı edilmiştir. Operatörün metni ayrılan alana sığmadıysa (7. sütundan 72. sütuna kadar), bir sonraki kartın 6. sütununa bir devam işareti yerleştirildi ve ardından operatör buna devam etti. İki veya daha fazla operatörü tek bir satıra (haritaya) yerleştirmek imkansızdı. Delikli kartların tarih haline gelmesiyle 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 aynı zamanda satır başına birden fazla ifade yazmanıza olanak tanıyan serbest bir formata sahiptir. Ücretsiz formatın kullanıma sunulması, Java veya Java gibi diğer modern programlama dilleri kullanılarak oluşturulan kodlar kadar okunabilir ve anlaşılır kodlar oluşturmayı mümkün kılmıştır.

    Eski Fortran'ın bir tür "arama kartı", hem GOTO koşulsuz atlama operatörlerinde hem de döngü operatörlerinde ve FORMAT formatı giriş / çıkış açıklama operatörlerinde kullanılan çok sayıda etikettir. Çok sayıda etiket ve GOTO deyimi çoğu zaman 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 günümüze kadar birçok dilde kullanılan yalnızca 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 ... tahsis (V(- 2 : 2 ,0 : 10 )) ! İndeksleri olabilen bir dizi için bellek ayırın ! -2 ila 2 arasında değişir (ilk dizin) ! ve 0'dan 10'a - ikinci... V (2 ,2 : 3 ) = V(- 1 : 0 ,1 ) ! Dizinin bir dilimini döndürme yaz(* ,* ) V(1 ,: ) ! İlk indeksi 1 olan V dizisinin tüm elemanlarını yazdırın. serbest bırakma(V)

    Selam Dünya!

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

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

    Serbest Format:

    Program merhaba print * , "Merhaba Dünya!" son

    Notlar.

    • PROGRAM ifadesi isteğe bağlıdır. Açıkçası, bir Fortran programında gerekli olan tek ifade END ifadesidir.
    • Program bildirimlerini 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 bakıldığında, dil operatörlerini yazarken 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 sonucu elde edilen nesne dosyalarını diğer dillerdeki derleyicilerden elde edilen nesne dosyalarına bağlamanıza olanak tanır, bu da daha esnek ve çok işlevli uygulamalar oluşturmanıza olanak tanır. Fortran dili için, klasik hesaplama problemlerini çözmeye yönelik rutinleri (LAPACK, IMSL, BLAS), dağıtılmış hesaplamayı organize etmeye yönelik görevleri (MPI, pvm) ve grafiksel arayüzler oluşturmaya yönelik görevleri (Quickwin, FORTRAN) içeren çok sayıda kütüphane de mevcuttur. / TK) veya DBMS'ye (Oracle) erişim.

    SSCB'de Fortran

    Notlar

    1. Örneğin bakınız: UTK ve ORNL'deki Netlib Havuzu
    2. A. M. Görelik. Fortran programlama dilinin evrimi (1957-2007) ve geliştirilmesine yönelik beklentiler // Hesaplamalı yöntemler ve programlama, 2008, cilt 9, s. 53-71
    3. Bartenyev O.V. Modern 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. Haberleri
    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 grafiğinin tarihi

    Edebiyat

    • Fortran. Programcının Referans Kılavuzu 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şen uzunluklu karakter dizileri
    • Robert W. Sebesta. 2.3. IBM 704 bilgisayarı 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)