Fortran – Wiki

Fortran

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji , szukaj
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.

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

[ 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

Information icon.svg  Zobacz też: kompilator .

[ 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

[ edytuj ] Zobacz też

Wikibooks-logo.svg
Zobacz publikację na Wikibooks :
Fortran
WiktionaryPl nodesc.svg
Zobacz hasło Fortran w Wikisłowniku
  • SAKO - "Polski Fortran"
  • Photran - środowisko programistyczne

[ edytuj ] Linki zewnętrzne

[ edytuj ] Bibliografia


USA: Podejrzany o udział w masakrze w Srebrenicy deportowany do kraju
Były dowódca brygady policji Serbów bośniackich Dejan Radojković, oskarżony w Bośni i Hercegowinie o udział w masakrze około 8 tys. Muzułmanów w Srebrenicy w 1995 r., został deportowany z USA - poinformowały w czwartek amerykańskie władze.



Egipt: Zakończyło się głosowanie w wyborach prezydenckich
W Egipcie zakończyło się w czwartek dwudniowe głosowanie w wyborach prezydenckich, które mają wyłonić następcę Hosniego Mubaraka, zmuszonego na początku zeszłego roku do ustąpienia. Wstępnych wyników można oczekiwać w sobotę.



Kancelaria Prezydenta: Nie ma loży prezydenckiej na Stadionie Narodowym
Nie było i nie ma czegoś takiego, jak loża prezydencka na Stadionie Narodowym - oświadczyła w czwartek szefowa prezydenckiego biura prasowego Joanna Trzaska-Wieczorek. Dodała, że prezydent Bronisław Komorowski zajmie na stadionie podczas Euro 2012 "najbardziej prestiżowe miejsce".



USA: Rośnie poparcie dla małżeństw gejów
W USA słabnie sprzeciw wobec legalizacji małżeństw homoseksualnych - wynika z najnowszego sondażu. Pokrzepiło to Biały Dom, gdyż komentatorzy uznali, że niedawna deklaracja prezydenta Baracka Obamy z poparciem takich małżeństw nie zaszkodzi mu w wyborach.



Palikot być może będzie ubiegał się o widzenie z Tymoszenko
Poseł Janusz Palikot przyjechał na Ukrainę, gdzie najprawdopodobniej będzie ubiegał się o spotkanie ze skazaną na siedem lat więzienia byłą premier Julią Tymoszenko - dowiedziała się w czwartek PAP ze źródeł dyplomatycznych w Kijowie.



Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,