Fortran - Google

Fortran

Z Wikipedii

(Przekierowano z FORTRAN)
Skocz do: nawigacji, szukaj

Fortran lub FORTRAN (ang. FORmula TRANslator) to język programowania stworzony w latach 50. i nadal będący w użyciu. Był to niegdyś język proceduralny, obecnie umożliwia również korzystanie ze struktur (Fortran 90/95), a jego głównym zastosowaniem są obliczenia naukowo-inżynierskie (w szczególności obliczenia numeryczne).

Z pierwszych wersji języka pochodzi zasada braku rozróżniania małych i dużych liter w słowach kluczowych języka oraz używanych zmiennych, a także bogate zasady tworzenia formatów zapisywanych i drukowanych danych.

Fortran dysponuje wielką liczbą bibliotek, które pozwalają rozwiązać praktycznie każde zadanie numeryczne. Najważniejsze przyczyny, z powodu których Fortran jest wykorzystywany i rozwijany do dziś, to: szybkość obliczeń oraz wysoka wydajność kodu generowanego przez kompilatory Fortranu, wynikająca m.in. z jego długiej obecności na rynku programistycznym, znakomita skalowalność i przenośność oprogramowania (pomiędzy różnymi platformami sprzętowymi i systemami operacyjnymi), a także dostępność bibliotek dla programowania wieloprocesorowego i równoległego. Obliczenia aerodynamiczne, wytrzymałościowe i cieplne obecnie prowadzone są wyłącznie z użyciem tego języka.

Do niedawna te zalety były okupione brakiem dobrych metod wizualizacji czy niskopoziomowej komunikacji z systemem operacyjnym, gdyż te zagadnienia są pominięte w kolejnych standardach języka (aż do Fortranu 95 włącznie). Obecnie producenci kompilatorów (zwłaszcza niezależni), wzbogacają je o możliwość stosowania grafiki celem umożliwienia wizualizacji wyników obliczeń (wykresy, wizualizacja tablic wielowymiarowych) poprzez dostarczanie odpowiednich bibliotek.

Karta perforowana z podziałem na pola dla Fortranu IV.
Karta perforowana z podziałem na pola dla Fortranu IV.

Spis treści

[edytuj] Historia i standardy

Pierwszy kompilator Fortranu stworzył zespół Johna Backusa, który w latach 1954-1957 pracował dla IBM. Kompilator ten był pierwszym w historii kompilatorem języka wysokiego poziomu. Został starannie zoptymalizowany, ponieważ autorzy obawiali się, że nikt nie będzie go używał, jeśli szybkość programów nie będzie porównywalna z szybkością programów napisanych w asemblerze.

Pierwsza standaryzacja nastÄ…piÅ‚a w 1960 roku, kiedy opisano pierwszy standard jÄ™zyka znany jako Fortran IV. Kolejnym standardem byÅ‚ Fortran 66. Standard ten byÅ‚ zbyt ubogi i implementacje musiaÅ‚y zawierać wiele rozszerzeÅ„. W latach siedemdziesiÄ…tych American National Standard Institute (ANSI) opracowaÅ‚a kolejny standard nazwany Fortran 77 który w roku 1980 staÅ‚ siÄ™ standardem miÄ™dzynarodowym. Jego struktura przystosowana jest do używanych wówczas powszechnie kart perforowanych, ale zawieraÅ‚a elementy programowania strukturalnego. W Polsce bardzo popularna byÅ‚a odmiana Fortranu na maszyny ICL/Odra (FORTRAN 1900; kompilator taÅ›mowy #XFAM oraz dyskowe #XFAT i #XFAE z konsolidatorem #XPCK), a także Watfor 77, Lahey 77 i MS Fortran na PC czy Fortran 80 dla 8-bitowych komputerów z systemem CP/M-80. W praktyce wiÄ™kszość tych kompilatorów miaÅ‚a wiele rozszerzeÅ„, które dopiero po latach weszÅ‚y do kolejnego standardu (struktury rekordowe, alokowalne tablice, wiÄ™cej instrukcji pozwalajÄ…cych na programowanie strukturalne itp.). NastÄ™pcÄ… Fortranu 77 staÅ‚ siÄ™ Fortran 90. Standard ma caÅ‚kowicie zmienionÄ… skÅ‚adnie dostosowanÄ… do współczesnych jÄ™zyków programowania, przykÅ‚adowo Fortran 90 nie wymusza już na użytkowniku stosowania etykiet i instrukcji goto. Kolejnym standardem jest Fortran 95, zmiany w stosunku do poprzedniej wersji sÄ… niewielkie. Pomimo wprowadzenia nowych standardów, Fortran 77 jest nadal w użyciu (głównie przez starszych programistów przyzwyczajonych do tej wersji), co uwzglÄ™dniajÄ… producenci praktycznie wszystkich kompilatorów – na przykÅ‚ad kompilator Compaq Visual Fortran (wczeÅ›niej Digital Visual Fortran) kompiluje programy napisane w standardach 66/77/90/95. Najnowszy standard jÄ™zyka nosi nazwÄ™ Fortran 2003.

[edytuj] FORTRAN czy Fortran

Należy wspomnieć o tym, że obecnie stosujemy pisownię nazwy języka Fortran. Poprzednie standardy języka aż do wersji 66 włącznie oznaczano jako FORTRAN.

[edytuj] Przykłady kodu

Ciekawostka - najkrótszy program

END

Warto zwrócić uwagę ze kod ten jest konieczny w każdym programie (jako informacja o końcu bloku głównego).

Typowy program - "hello, world"

Kod dla F77:

PROGRAM HELLO
         WRITE (*,*) 'hello, world'
       END

Deklaracje zmiennych i "Implicit none"

Standard nie wymusza stosowania deklaracji zmiennych, wówczas niezadeklarowane zmienne o nazwach rozpoczynających się od liter A-H i O-Z (nie są rozrózniane małe i duże litery) mają typ real (rzeczywisty, zmiennoprzecinkowy o precyzji zależnej od implementacji i opcji) a zmienne rozpoczynające się od I-N są typu integer (liczby całkowite o zakresie zależnym od implementacji i opcji); jest to równoważne deklaracjom "implicit real (A-H,O-Z)" i "implicit integer (I-N)".

Wyrażenie "implicit none" zastosowane na początku programu, zapobiega wykorzystaniu niezadeklarowanych zmiennych. Przykładowy poprawny kod programy liczącego sumę dwóch liczb rzeczywistych (podwójnej precyzji - real(8)), w języku F95:

IMPLICIT NONE
REAL(8) :: a,b
READ *,a,b
PRINT *,'wynik',a+b
END

w przypadku kodu:

IMPLICIT NONE
REAL(8) :: a
READ *,a,b
PRINT *,'wynik',a+b
END

kompilator wyświetla błąd o niezadeklarowaniu zmiennej 'b' wykorzystywanej w programie.

Fakt domyślnej deklaracji zmiennych niejednokrotnie powodował kłopoty programistów, nie mogących odnaleźć źródła nieoczekiwanych kaprysów pozornie poprawnych programów. Np. nagłówek pętli wykonywanej stukrotnie dla zmiennej I mógłby wyglądać następująco:

DO 100 I=1,100

Omyłkowe umieszczenie kropki zamiast przecinka nie czyni tej instrukcji niepoprawną:

DO 100 I=1.100

Kompilator uzna ten zapis nie za otwarcie pętli, a za domyślną deklarację zmiennej DO100I typu rzeczywistego (nazwa zaczyna się bowiem od litery D) i przypisze jej wartość 1.1, co w oczywisty sposób zmieni zamierzony przepływ sterowania.

[edytuj] Kompilatory Języka Fortran

[edytuj] Kompilatory języka Fortran 90/95

  • GNU Fortran 95 - wolny, jeden z podprojektów GCC
  • G95 Project (Linux) - darmowy
  • VAST/f90 (Linux) - darmowy kompilator dla użytkowników indywidualnych (a wÅ‚aÅ›ciwie translator F77 do F90)
  • Intel Fortran Compiler (Linux, Windows) - w wersji pod Linuksa darmowy dla niekomercyjnych zastosowaÅ„
  • Absoft Pro Fortran (Linux, Windows, Mac OS, PowerPC) - pÅ‚atny
  • Compaq Visual Fortran (Windows, Linux/Unix/OpenVMS Alpha, OpenVMS VAX) - pÅ‚atny, ale już nie produkowany (nastÄ™pcÄ… jest Fortran rozwijany przez firmÄ™ Intel)
  • Lahey/Fujitsu Fortran (Windows, Linux, SPARC Solaris) - komercyjny
  • NAGWare f95 (Linux, Mac OS, SPARC Solaris, IRIX, SunOS, OSF/1, PA-RISC) - komercyjny
  • NA Software FortranPlus (Linux, Windows) - pÅ‚atny
  • Portland Group PGHPF Workstation (Linux, Windows) - pÅ‚atny
  • Salford FTN95 (Windows) - darmowy do zastosowaÅ„ niekomercyjnych (od roku 2005)

[edytuj] Kompilatory języka Fortran 77

[edytuj] Zobacz też

Wikibooks
Zobacz podręcznik na Wikibooks:
Fortran
  • SAKO - "Polski Fortran"

[edytuj] Linki zewnętrzne


"Niektóre wyroki ws. dziennikarzy mają charakter przypadkowy"
Zdaniem medioznawcy, profesora Wiesława Godzica, niektóre wyroki zapadające w Polsce w sprawach dotyczących dziennikarzy mają charakter przypadkowy, i są efektem braku wiedzy sędziów o zasadach działania wolnych mediów.
Szef SLD: "palikotyzacja" PO z siłą huraganu
- Szef klubu PO, Zbigniew Chlebowski najwyraźniej bierze przykład ze swojego kolegi, posła Janusza Palikota (...). W polityce jednak warto zachować umiar i nie licytować się z posłem Palikotem - pisze na swoim blogu w Onet.pl Grzegorz Napieralski, przewodniczący Sojuszu Lewicy Demokratycznej.
"On jak śpi, to kłamie; PO nie rozmawia z zakłamanym hipokrytą"
- Jak Å›mie pan Napieralski mówić, że nie dajÄ… (SLD - red.) partyjnej legitymacji telewizji publicznej, a obecna telewizja, która jest PiS-owskim komitetem wyborczym - mówiÄ™ o publicystyce - miejscami przypomina publicystykÄ™ stanu wojennego - jest caÅ‚kowicie jednostronna, PiS-owska, zakÅ‚amana – oburzaÅ‚ siÄ™ w TVN24 Stefan NiesioÅ‚owski.
Posłowie PiS i publicyści: wolność słowa w Polsce zagrożona
Zdaniem niektórych publicystów dzienników i tygodników oraz posłów PiS, w Polsce za niewinne, publicystyczne wypowiedzi zapadają drakońskie wyroki sądu. Wolność słowa w naszym kraju jest zagrożona - uważają.
Odnalazł się zaginiony dwulatek
Odnalazł się dwulatek, który zgubił się w polu tytoniu w miejscowości Zegartowice (Świętokrzyskie) poinformował PAP rzecznik świętokrzyskiej policji komisarz Krzysztof Skorek.
Linki: Strona g³ówna