Fortran, skrót od "Formula Translation", to język programowania wysokiego poziomu, który jest szczególnie dobrze przystosowany do zastosowań naukowych i inżynieryjnych. Był jednym z pierwszych języków programowania opracowanych dla komputerów elektronicznych i znacznie ewoluował od swojego powstania. Fortran umożliwia efektywne manipulowanie danymi tablicowymi i wspiera złożone obliczenia matematyczne, co czyni go językiem wyboru w takich dziedzinach jak numeryczna prognoza pogody, fizyka obliczeniowa i bioinformatyka, między innymi.
Fortran został opracowany w latach 50. XX wieku przez firmę IBM jako język zaprojektowany do obliczeń numerycznych i obliczeń naukowych. Pierwsza wersja, Fortran I, została wydana w 1957 roku. Główną ideą było stworzenie języka, który pozwoliłby naukowcom i inżynierom pisać programy bez potrzeby znajomości zawiłości sprzętu.
Wprowadzono kolejne wersje Fortranu, z których każda dodawała nowe funkcje i poprawiała użyteczność. Wkrótce po Fortranie I pojawił się Fortran II, który dodał cechy programowania strukturalnego. W 1966 roku wprowadzono Fortran IV, który stał się standardem branżowym. Fortran 77 (wydany w 1978 roku) dodał takie funkcje jak typy danych znakowych i ulepszone możliwości wejścia/wyjścia.
Od 1991 roku Fortran 90 wprowadził programowanie tablicowe, programowanie modularne, rekurencję i dynamiczną alokację pamięci. Fortran 2003 i Fortran 2008 dalej wzbogaciły język o cechy takie jak programowanie obiektowe i poprawioną interoperacyjność z językiem C. Najnowszy standard, Fortran 2018, wprowadził dalsze ulepszenia, w tym poprawioną kompatybilność i funkcjonalność dla przetwarzania równoległego.
Fortran jest nadal aktywnie używany w wielu dziedzinach naukowych i inżynieryjnych, wspierany przez nowoczesne kompilatory, takie jak GNU Fortran (gfortran) i Intel Fortran Compiler. Posiada dużą bazę kodu dziedziczonego, a wiele bibliotek naukowych jest napisanych w Fortranie, co czyni go kluczowym językiem w niektórych dziedzinach.
Fortran jest językiem silnie typowanym, który wymaga jawnej deklaracji typów zmiennych. Na przykład:
INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name
Fortran doskonale radzi sobie z obsługą tablic, umożliwiając operacje na całych tablicach za pomocą prostej składni.
REAL, DIMENSION(10) :: A
A = 2.0 * A ! Mnoży każdy element tablicy A przez 2
Fortran zapewnia konwencjonalne struktury kontrolne, takie jak pętle i instrukcje warunkowe.
DO i = 1, 10
IF (A(i) > 0) THEN
PRINT *, 'Pozytywna'
END IF
END DO
Fortran pozwala na definiowanie funkcji i podprogramów dla programowania modularnego.
FUNCTION square(x)
REAL :: square
REAL, INTENT(IN) :: x
square = x * x
END FUNCTION square
Domyślnie Fortran ma regułę, według której zmienne o nazwach zaczynających się na "I", "J", "K", "L", "M" lub "N" są domyślnie typu INTEGER. Można to nadpisać dla większej przejrzystości.
IMPLICIT NONE ! Wyłącza typowanie domyślne
INTEGER :: I
REAL :: R
Fortran obsługuje pętle do-while do powtarzania wykonania na podstawie warunku.
i = 1
DO WHILE (i <= 10)
PRINT *, i
i = i + 1
END DO
Fortran ma potężne typy zdefiniowane przez użytkownika, znane jako typy pochodne, które pozwalają na definiowanie danych podobnych do struktur.
TYPE :: Person
CHARACTER(len=20) :: name
INTEGER :: age
END TYPE Person
TYPE(Person) :: p1
Fortran wspiera moduły do enkapsulacji danych i procedur, promując ponowne użycie kodu i organizację.
MODULE myModule
CONTAINS
SUBROUTINE mySubroutine()
! Implementacja
END SUBROUTINE
END MODULE
Fortran obsługuje wskaźniki, które ułatwiają dynamiczne zarządzanie pamięcią, podobnie jak w językach takich jak C.
REAL, POINTER :: pA
ALLOCATE(pA(10)) ! Dynamicznie alokuje tablicę
Fortran ma funkcje umożliwiające interoperacyjność z C, co pozwala na programowanie w mieszanych językach.
INTERFACE
FUNCTION c_function(x) BIND(C, NAME="c_function")
INTEGER(C_INT) :: c_function(INTEGER)
END FUNCTION c_function
END INTERFACE
Najpopularniejsze kompilatory Fortranu to:
Chociaż Fortran nie jest tak powszechnie kojarzony z nowoczesnymi IDE jak niektóre inne języki, kilka IDE go wspiera:
Budowanie projektu Fortran zazwyczaj polega na tworzeniu plików źródłowych z rozszerzeniem .f, .f90 lub .f95 i kompilowaniu ich za pomocą kompilatora Fortran. Typowa komenda może wyglądać następująco:
gfortran -o my_program my_source.f90
Fortran jest szeroko stosowany w obliczeniach naukowych, numerycznej prognozie pogody, modelowaniu klimatu, fizyce obliczeniowej, chemii obliczeniowej i bioinformatyce. Jest szczególnie znany ze swojej wydajności w ciężkich obliczeniach numerycznych i symulacjach.
Głównymi konkurentami Fortranu w dziedzinie programowania naukowego i inżynieryjnego są:
Fortran ma kilka narzędzi do tłumaczenia źródło-do-źródła, które mogą pomóc deweloperom w konwersji kodu dziedziczonego na bardziej współczesne języki lub w optymalizacji istniejącego kodu. Niektóre z narzędzi to:
Te narzędzia ułatwiają przejście z starszych wersji Fortranu lub całkowicie różnych paradygmatów programowania, jednocześnie pomagając w utrzymaniu wydajności i funkcjonalności.