twórca języka fortran, john backus (1924-2007)
DESCRIPTION
FORTRAN lub Fortran: od FORmula TRANslator Pierwszy język programowania wysokiego poziomu Pierwsza wersja powstała w latach 1954-1957, opracowana na IBM 704. - PowerPoint PPT PresentationTRANSCRIPT
Twórca języka FORTRAN, John Backus (1924-2007)
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.
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/2008Rozszerzenie 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 główny
Blok 1
Blok 2
Blok 2.1
Program modularny (FORTRAN)
Moduł 1
Moduł 2
Moduł 3
Tworzenie modułu wykonywalnego ze modułów źródłowych w FORTRANie
Pliki źródłowe
Pliki z modułami relokowalnymi (objectami)
Biblioteki
Moduł wykonywalny
Kompilacja
Konsolidacja (linkowanie)
Literatura
1. D. Chrobak. FORTRAN, praktyka programowania. MIKOM, Warszawa, 2003. (FORTRAN 95)
2. W. Pachelski. Programowanie strukturalne: Fortran 77 dla IBM PC, WNT, Warszawa 1993. (FORTRAN 77)
3. R.K. Kott, K. Walczak. Programowanie w języku Fortran 77, WNT, Warszawa, 1991. (FORTRAN 77)
4. A. Trykozko. Ćwiczenia z języka FORTRAN. MIKOM, Warszawa 1999. (FORTRAN 77)
5. W. Pachelski. FORTRAN IV dla maszyn Jednolitego Systemu. WNT, Warszawa 1981. (FORTRAN IV)
6. 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)