Język programowania Fortran

Przegląd

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.

Aspekty historyczne

Tworzenie

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.

Ewolucja

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.

Stan obecny

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.

Cechy składni

Silne typowanie

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

Obsługa tablic

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

Struktury kontrolne

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

Funkcje i podprogramy

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

Typowanie domyślne

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

Pętle Do-While

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

Typy pochodne

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

Wsparcie dla modułów

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

Użycie wskaźników

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ę

Interoperacyjność

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

Narzędzia deweloperskie i środowiska uruchomieniowe

Kompilatory i interpretery

Najpopularniejsze kompilatory Fortranu to:

Zintegrowane środowiska programistyczne (IDE)

Chociaż Fortran nie jest tak powszechnie kojarzony z nowoczesnymi IDE jak niektóre inne języki, kilka IDE go wspiera:

Budowanie projektów

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

Zastosowania Fortranu

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.

Porównanie z podobnymi językami

Głównymi konkurentami Fortranu w dziedzinie programowania naukowego i inżynieryjnego są:

Wskazówki dotyczące tłumaczenia źródło-do-źródła

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.