Fortran
| Ten artykuł należy dopracować zgodnie z zaleceniami edycyjnymi : poprawić styl – powinien mieć encyklopedyczną formę . Po wyeliminowaniu niedoskonałości prosimy usunąć szablon {{Dopracować}} z kodu tego artykułu. |
| Fortran | |
| Pojawienie się | lata 50. XX wieku |
Fortran lub FORTRAN (do wersji 66 włącznie; od ang. FORmula TRANslator) – 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 ).
Spis treści |
[ edytuj ] Specyfika
Z pierwszych wersji języka pochodzi zasada braku rozróżniania małych i wielkich 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 często prowadzone są 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.
[ 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 skoku . 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 ] Podstawy
[ edytuj ] Operatory logiczne
| operator logiczny | nazwa |
|---|---|
| .NOT. | negacja |
| .AND. | koniunkcja |
| .OR. | alternatywa |
| .EQV. | równoważność |
| .NEQV. | zaprzeczenie równoważności |
[ edytuj ] Operatory działań na liczbach
| operator relacji | opis |
|---|---|
| .LT. | ang. less than - inaczej < |
| .LE. | ang. less equal - inaczej <= |
| .GT. | ang. greater than - inaczej > |
| .GE. | ang. greater equal - inaczej >= |
| .EQ. | ang. equal - inaczej == (lub = w Pascalu) |
| .NE. | ang. not equal - inaczej != (lub <> w Pascalu) |
[ edytuj ] Operatory arytmetyczne
| operator arytmetyczny | działanie |
|---|---|
| + | dodawanie |
| - | odejmowanie |
| * | mnożenie |
| / | dzielenie |
| ** | potęgowanie |
[ edytuj ] Przykłady
Najkrótszy program:
END
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óżniane 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)".
Dyrektywa kompilatora implicit none zastosowana na początku programu zapobiega wykorzystaniu niezadeklarowanych zmiennych. Przykładowy poprawny kod programu 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 stokrotnie 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
[ edytuj ] Kompilatory języka Fortran 90/95
- GNU Fortran 95 - wolny , jeden z podprojektów GCC
- G95 Project ( Linux ) - darmowy
- Edi ( Windows ) - darmowy pakiet programistyczny dla Windows, pod warunkiem zarejestrowania
- 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 /Open VMS 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)
- Open64 [1] - darmowy
[ edytuj ] Kompilatory języka Fortran 77
- Salford FTN77 ( Windows ) - darmowy
- Open Watcom ( Windows , OS/2 ) - open source
- g77 ( GNU fortran 77) - wolny
[ edytuj ] Zobacz też
[ edytuj ] Linki zewnętrzne
[ edytuj ] Bibliografia
- Ryszard K. Kott, Krzysztof Walczak. Programowanie w języku Fortran 77, Wydawnictwa Naukowo-Techniczne , Warszawa 1991 , ISBN 83-204-1362-1
- Janna Jonkisz, Jan Makuch, Stanisław Starzak, Programowanie w językach Algol 60 i Fortran 1900, Wydawnictwo Politechniki Łódzkiej, Łódź 1982 , Skrypty dla szkół wyższych , Politechnika Łódzka , Ośrodek Elektronicznej Techniki Obliczeniowej
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

