Fortran, сокращение от "Formula Translation" (Перевод Формул), является языком программирования высокого уровня, который особенно хорошо подходит для научных и инженерных приложений. Это был один из первых языков программирования, разработанных для электронных компьютеров, и с тех пор он значительно эволюционировал. Fortran позволяет эффективно манипулировать массивами данных и поддерживает сложные математические вычисления, что делает его языком выбора для численного прогнозирования погоды, вычислительной физики и биоинформатики, среди прочих областей.
Fortran был разработан в 1950-х годах компанией IBM как язык, предназначенный для численных вычислений и научного программирования. Первая версия, Fortran I, была выпущена в 1957 году. Основная идея заключалась в создании языка, который позволил бы ученым и инженерам писать программы, не зная тонкостей аппаратного обеспечения.
В последующие годы были представлены новые версии Fortran, каждая из которых добавляла новые функции и улучшала удобство использования. Вскоре после этого появилась Fortran II, добавившая функции структурного программирования. В 1966 году была представлена Fortran IV, которая стала отраслевым стандартом. Fortran 77 (выпущенная в 1978 году) добавила такие функции, как типы данных символов и улучшенные возможности ввода/вывода.
С 1991 года Fortran 90 ввел программирование массивов, модульное программирование, рекурсию и динамическое распределение памяти. Fortran 2003 и Fortran 2008 еще больше улучшили язык, добавив такие функции, как объектно-ориентированное программирование и улучшенная совместимость с языком программирования C. Последний стандарт, Fortran 2018, принес дополнительные улучшения, включая улучшенную совместимость и функциональность для параллельной обработки.
Fortran по-прежнему активно используется во многих научных и инженерных дисциплинах, поддерживаемый современными компиляторами, такими как GNU Fortran (gfortran) и Intel Fortran Compiler. У него большая база унаследованного кода, и многие научные библиотеки написаны на Fortran, что делает его критически важным языком в определенных областях.
Fortran является строго типизированным языком, который требует явного объявления типов переменных. Например:
INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name
Fortran отлично справляется с обработкой массивов, позволяя выполнять операции над целыми массивами с помощью простого синтаксиса.
REAL, DIMENSION(10) :: A
A = 2.0 * A ! Умножает каждый элемент массива A на 2
Fortran предоставляет обычные управляющие структуры, такие как циклы и условные операторы.
DO i = 1, 10
IF (A(i) > 0) THEN
PRINT *, 'Положительное'
END IF
END DO
Fortran позволяет определять функции и подпрограммы для модульного программирования.
FUNCTION square(x)
REAL :: square
REAL, INTENT(IN) :: x
square = x * x
END FUNCTION square
По умолчанию в Fortran существует правило, согласно которому переменные с именами, начинающимися на "I", "J", "K", "L", "M" или "N", неявно считаются INTEGER. Это можно переопределить для ясности.
IMPLICIT NONE ! Отключает неявную типизацию
INTEGER :: I
REAL :: R
Fortran поддерживает циклы do-while для повторного выполнения на основе условия.
i = 1
DO WHILE (i <= 10)
PRINT *, i
i = i + 1
END DO
Fortran имеет мощные пользовательские типы, известные как производные типы, которые позволяют определять данные, подобные структурам.
TYPE :: Person
CHARACTER(len=20) :: name
INTEGER :: age
END TYPE Person
TYPE(Person) :: p1
Fortran поддерживает модули для инкапсуляции данных и процедур, что способствует повторному использованию и организации кода.
MODULE myModule
CONTAINS
SUBROUTINE mySubroutine()
! Реализация
END SUBROUTINE
END MODULE
Fortran поддерживает указатели, которые облегчают динамическое управление памятью, аналогично языкам, таким как C.
REAL, POINTER :: pA
ALLOCATE(pA(10)) ! Динамически выделяет массив
Fortran имеет функции, создающие совместимость с C, что позволяет смешанное программирование на разных языках.
INTERFACE
FUNCTION c_function(x) BIND(C, NAME="c_function")
INTEGER(C_INT) :: c_function(INTEGER)
END FUNCTION c_function
END INTERFACE
Наиболее популярные компиляторы Fortran включают:
Хотя Fortran не так часто ассоциируется с современными IDE, как некоторые другие языки, несколько IDE поддерживают его:
Создание проекта на Fortran обычно включает создание исходных файлов с расширением .f, .f90 или .f95 и их компиляцию с помощью компилятора Fortran. Типичная команда может выглядеть так:
gfortran -o my_program my_source.f90
Fortran широко используется в научных вычислениях, численном прогнозировании погоды, климатическом моделировании, вычислительной физике, вычислительной химии и биоинформатике. Он особенно известен своей производительностью в тяжелых численных вычислениях и симуляциях.
Основные конкуренты Fortran в области научного и инженерного программирования включают:
Fortran имеет несколько инструментов перевода исходного кода, которые могут помочь разработчикам конвертировать унаследованный код в более современные языки или оптимизировать существующий код. Некоторые инструменты включают:
Эти инструменты облегчают переход от более старых версий Fortran или совершенно разных парадигм программирования, сохраняя при этом производительность и функциональность.