Fortran/Wprowadzenie

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania

O języku Fortran[edytuj]

Język Fortran jest językiem kompilowanym. Oznacza to, że aby uruchomić nasz pierwszy program w Fortranie musimy go skompilować, czyli przetworzyć z postaci czytelnej dla człowieka na kod maszynowy. Historyczne uwarunkowania doprowadziły do tego, że kompilatory języka Fortran generują zoptymalizowany kod, dzięki czemu wykonanie programu, napisanego w Fortranie jest bardzo szybkie. Oprócz tego ważną cechą Fortranu jest jego przenośność. Podobnie, jak język C, także i Fortran jest językiem przenośnym - ale tylko w postaci kodu źródłowego. Natomiast w przeciwieństwie do języka C, Fortran posiada niejako "wbudowane" funkcje obsługi wejścia i wyjścia (Input-Output - I/O) oraz funkcje matematyczne. Np. potęgowanie posiada swój specjalny operator (o nich później). Język Fortran oferuje też ciekawe możliwości dla osób piszących programy pod systemy wieloprocesorowe lub programy równoległe.

Użycie Fortranu do symulacji kolizji dwóch galaktyk

Zastosowanie języka Fortran[edytuj]

Z rozdziału historia poznałeś niektóre zastosowania języka Fortran. Jednak nie są to jedyne jego zastosowania. W jednym z dialektów napisano nawet system operacyjny.

Czego potrzebujesz[edytuj]

Aby rozpocząć przygodę z językiem Fortran musisz koniecznie zaopatrzyć się w:

  • dowolny system operacyjny
  • dowolny edytor tekstowy, który nie formatuje tekstu, lub ma funkcję zapisywania plików bez formatowania.
  • kompilator języka Fortran - tutaj natrafisz na bardzo duży wybór

Edytor[edytuj]

Zamiast zwykłego edytora możesz wybrać Zintegrowane Środowisko Programistyczne (IDE), na przykład Code::Blocks for Fortran lub wtyczkę Photran do środowiska Eclipse, lub środowisko Firmy Intel dla linuxa Intel® Parallel Studio XE for Linux* wersja niekomercyjna.

Kompilator[edytuj]

Jak już wspomniałem, wybór kompilatora może sprawić Ci trudność. Będzie on zależał od systemu operacyjnego oraz możliwości Twojego budżetu. Oczywiście do nauki wystarczy Ci najprostszy, darmowy kompilator. W niniejszym podręczniku będziemy opierali się na najnowszym dziecku projektu GCC - gfortran. Krótką listę dostępnych kompilatorów, zawiera artykuł w polskiej Wikipedii. Niezłym punktem startu jest też anglojęzyczna strona The Fortran Company, na której oprócz informacji o komercyjnych pakietach, znajdziesz też sporo darmowych bibliotek i tutoriali.

Dość ciekawą rzeczą jest natomiast działanie kompilatora. Każdy kompilator języka Fortran składa się z dwóch części

  • kompilatora właściwego, przetwarzającego program na kod maszynowy
  • biblioteki uruchomieniowej

To właśnie w tym drugim elemencie przechowywane są najbardziej podstawowe funkcje. Bibliotekę uruchomieniową możemy porównać do biblioteki języka C w systemach UNIX (tak naprawdę, w systemach Uniksowych część biblioteki uruchomieniowej korzysta z biblioteki języka C). Kompilatory Fortranu umożliwiają także łączenie w jeden program kilku modułów napisanych zarówno w języku Fortran, jak i C. Temu zagadnieniu poświęcony jest ostatni rozdział tego podręcznika (Łączenie języka C z językiem Fortran).


instalacja[edytuj]

Instalacja gfortrana na ubuntu:

  apt-get install gfortran


Po udanej instalacji sprawdzamy wersję:

  gfortran --version

Przykładowy wynik :

GNU Fortran (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904
Copyright (C) 2015 Free Software Foundation, Inc.

GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING

Pierwsze spojrzenie na Fortran 90/95[edytuj]

Witaj świecie![edytuj]

Zgodnie z tradycją pierwszym przykładem języka programowania powinien być program wyświetlający radosny napis "Hello World!". Oto kod tego programu w Fortranie 95 (albo w Fortranie 90, gdyż niewiele się między sobą różnią):

 !
 ! To jest program przykładowy w Fortranie 90/95  
 !
program helloworld            ! nieobowiązkowy ale zalecany początek programu
     print *, "Hello, world!" ! wyświetlenie na ekranie napisu
end program helloworld        ! koniec programu - obowiązkowy, jeśli wcześniej jest słowo program

Zapiszmy nasz program w pliku hello.f95. Aby go uruchomić musisz wykonać czynność, zwaną kompilacją. Nasze przykłady oprzemy na kompilatorze gfortran. Aby uzyskać program wykonywalny w konsoli musisz wykonać:

gfortran hello.f95 -o hello

Aby uruchomić program należy wywołać ścieżkę dostępu do pliku, np.:

./hello

lub po prostu jego nazwę, jeśli katalog w którym się znajduje został dopisany do zmiennej środowiskowej $PATH.

Wiedza elementarna[edytuj]

  • Język Fortran (niezależnie od wersji) nie rozróżnia wielkości znaków, czyli print* i PRINT* to dla kompilatora dokładnie ta sama instrukcja.
  • W jednym wierszu można umieścić do 132 znaków.
  • Spacje są ważne - służą do oddzielania słów kluczowych i identyfikatorów (oprócz spacji tę funkcję pełnią także inne białe znaki i znaki przestankowe). Nie wolno wstawiać spacji (ani innego znaku) wewnątrz słowa kluczowego lub identyfikatora.
  • Komentarzem jest tekst od symbolu wykrzyknika do najbliższego znaku końca linii. Wyjątkiem jest sytuacja, gdy znak ! pojawia się w cytowaniu.
  • Znak końca linii jest znakiem kończącym instrukcję.
  • Jeśli chcemy kontynuować instrukcję w następnym wierszu musimy na końcu linii postawić znak &. Jeśli jednak chcemy przełamać napis otoczony cudzysłowem lub apostrofami to znak & musimy umieścić na końcu pierwszego i na początku drugiego wiersza.
  • W przypadku, gdy chcemy umieścić kilka instrukcji w jednym wierszu oddzielamy je znakiem ;
  • Język Fortran pozwala na używanie niezadeklarowanych zmiennych (co nie jest zalecane) - typ zmiennej zależy wówczas od pierwszej litery nazwy zmiennej. Nazwy zaczynające się na I,J,K,L,M,N to liczby całkowite, pozostałe to liczby zmiennoprzecinkowe. Możemy zrezygnować z tej możliwości (zalecamy!) umieszczając instrukcję implicit none zaraz po wierszu ze słowem program.
  • Używany alfabet to litery małe: a-z i duże: A-Z, cyfry 0-9, znak podkreślenia _. Dozwolone są również następujące znaki specjalne: spacja, enter oraz +-*/<=>().,'";:!&%$?. Oprócz tego znane nam kompilatory w komentarzach i łańcuchach tekstowych pozwalają na użycie innych znaków, w tym polskich liter "z ogonkami".
  • Struktura programu rozdziela część deklaracyjną od wykonywalnej - tzn. po użyciu jakiejkolwiek instrukcji wykonywalnej, nie można już deklarować zmiennych, stałych itp.
  • Do cytowania napisów (stałych tekstowych) można używać zarówno znaku cudzysłowu " jak i apostrofu '. Przy czym jeśli rozpoczęliśmy cytowanie jednym znakiem, to trzeba zamknąć je tym samym - dzięki temu bez problemu można umieścić w łańcuchu same znaki cytowania np. "User's guide" (ten sam efekt uzyskamy pisząc 'User''s guide').