90 likes | 301 Views
FORTRAN lub Fortran: od FORmula TRANslator Pierwszy język programowania wysokiego poziomu Pierwsza wersja powstała w latach 1954-1957, opracowana na IBM 704.
E N D
FORTRAN lub Fortran: od FORmula TRANslator Pierwszy język programowania wysokiego poziomu Pierwsza wersja powstała w latach 1954-1957, opracowana na IBM 704. Przed powstaniem FORTRANu programu pisano w języku asemblera (nieco “ucywilizowanym” języku rozkazów maszyny). Pisanie prostego programu zajmowało tygodnie; użycie FORTRANu skróciło ten czas do godzin. Twórca języka FORTRAN, John Backus (1924-2007)
Historia języka FORTRAN 1954-57: FORTRAN I 1958: FORTRAN II; umożliwiał kompilację oddzielnych modułów. 1958: FORTRAN III; wersja nieupubliczniona; umożliwiał dołączanie kodu napisanego w języku asemblera. 1961: FORTRAN IV; Pojawiły się dyrektywy COMMON i EQUIVALENCE oraz wyeliminowano zależne od maszyny nieregularności języka. 1962: Za sprawą American Standard Association (ASA), kompilatory FORTRANu wchodzą do standardowego oprogramowania każdego komputera. 1966: FORTRAN 66; pierwszy standard języka ustalony przez ASA.
Lata 80’te XX wieku: FORTRAN77 • Pętle “wstecz” (ze zmniejszającą się wartością zmiennej kontrolnej) • Bloki IF…THEN…ELSE…ENDIF (w FORTRANie 66 tylko jako kombinacje IF i GOTO). • Sprawdzanie zakresu zmiennych pętli DO (przedtem instrukcje wewnątrz pętli były wykonywane przynajmniej raz). • Dane tekstowe (typ CHARACTER; przedtem dane tekstowe były przechowywane jako INTEGER lub REAL). • Użycie apostrofów jako ograniczników pola tekstowego. • Zakończenie programu głównego bez instrukcji STOP.
Lata 90’te XX wieku: FORTRAN90 i FORTRAN95 • Kod w formacie swobodnym (wcześniej linia tekstu była podzielona na pola o określonym znaczeniu). • Dodanie instrukcji CASE i DO WHILE. • Operacje na tablicach. • Możliwość definicji własnych operatorów. • Atrybut INTENT (in, out, inout). • Kontrola numerycznej precyzji i zakresu zmiennych. • Moduły jako pakiety zawierające kod i zmienne. FORTRAN 90/95 jest obecnym standardem języka. Jego kompilatory przetwarzają zarówno kod źródłowy napisany w formacie stałym (FORTRAN77 i niżej), jak i swobodnym.
FORTRAN 2000/2003/2008 • Rozszerzenie definicji typów. • Możliwość programowania obiektowego. • Rozszerzenie możliwości manipulacji danymi. • Rozszerzenie instrukcji wejścia/wyjścia (asynchroniczne wprowadzanie/wyprowadzanie danych, dostęp do strumieni danych, itp.). • Wskaźniki procedur. • Obsługa wyjątków IEC 60559 (IEEE 754). • Współpraca z modułami napisanymi w języku C. • Obsługa międzynarodowych standardów danych: 4-bitowych zmiennych znakowych ISO 10646 i wybór kropki lub przecinka dziesiętnego. • Dostęp do argumentów linii poleceń, zmiennych środowiskowych i komunikatów procesora o błędach.
Program hierarchiczny (ALGOL, PASCAL) Program modularny (FORTRAN) Program główny Moduł 1 Blok 1 Blok 2 Moduł 2 Blok 2.1 Moduł 3
Tworzenie modułu wykonywalnego ze modułów źródłowych w FORTRANie Pliki źródłowe Kompilacja Pliki z modułami relokowalnymi (objectami) Biblioteki Konsolidacja (linkowanie) Moduł wykonywalny
Literatura • D. Chrobak. FORTRAN, praktyka programowania. MIKOM, Warszawa, 2003. (FORTRAN 95) • W. Pachelski. Programowanie strukturalne: Fortran 77 dla IBM PC, WNT, Warszawa 1993. (FORTRAN 77) • R.K. Kott, K. Walczak. Programowanie w języku Fortran 77, WNT, Warszawa, 1991. (FORTRAN 77) • A. Trykozko. Ćwiczenia z języka FORTRAN. MIKOM, Warszawa 1999. (FORTRAN 77) • W. Pachelski. FORTRAN IV dla maszyn Jednolitego Systemu. WNT, Warszawa 1981. (FORTRAN IV) • J. Bańkowski, K. Fijałkowski, Z. Odrowąż-Sypniewski. Programowanie w języku FORTRAN. WNT, Warszawa 1978. (FORTRAN IV)
FORTRAN na sieci http://www.fortran.com (przydatne linki związane z FORTRANem) http://www-rocq.inria.fr/~kern/G77/g77.html (gnu FORTRAN) http://www.lahey.org (kompilator Laheya; wersja 14-dniowa jest bezpłatna) http://www.pgroup.com (kompilatory z grupy Portland) http://www.nag.com (kompilator NAG) http://www.softbooks.com.pl/soft/intel/fortran.html (bezpłatny kompilator FORTRANu firmy INTEL) http://www.netlib.org (linki do przydatnych bibliotek)