Фортран (Fortran) (раніше FORTRANДо версії Fortran 90 всі ключові слова мали писатися великими літерами. Починаючи з версії Fortran 90 назву мови FORTRAN офіційно почали писати як Fortran. — скорочення від «The IBM Mathematical Formula Translating System», тобто «Система трансляції математичних формул від IBM»)  — імперативна мова програмування загального призначення, яка особливо підходить для інтенсивних чисельних та наукових обчислень. Розроблена корпорацією IBM в 1950-х роках в університетському містечку на півдні Сан-Хосе (Каліфорнія) для потреб наукових та інженерних проєктів.

Досить швидко Фортран почав домінувати в цій галузі програмування, і понад півстоліття постійно використовується для чисельного прогнозу погодиНайбільш відомий комплекс програм для моделювання та прогнозу погоди у відкритому доступі: The Weather Research and Forecasting (WRF) Model (National Center for Atmospheric Research, USA) , аналізу методом скінченних елементів, обчислювальної гідродинаміки, обчислювальної фізики та хімії. Це одна з найбільш популярних мов для високопродуктивних обчислень, а також використовується для тестування швидкодії найпотужніших у світі суперкомп'ютерівThe NAS Parallel Benchmarks (NPB) від NASACPU™ 2006.

Фортран вважається першою мовою програмування, що широко використовувалась та підтримувала найрізноманітніші комп'ютерні архітектури. Розвиток Фортрану відбувався паралельно ранній еволюції технології компіляторів, і багато досягнень в галузі теорії та розробки компіляторів були спеціально мотивовані необхідністю створення ефективного коду для програм мовою Фортран.

Історія розвитку Фортран як мова розвивалась стабільно і навіть консервативно. Кожен наступний стандарт був створений після тривалої дискусії між виробниками компіляторів та зацікавленими експертами. Тому кожна з версій, що розвивалася, зазвичай додавала тільки розширення мови, одночасно зберігаючи при цьому сумісність з попередніми версіями (однак були і винятки). Версія Fortran 77 додала підтримку для обробки символьних даних; операції з масивами і модульне програмування з'явилися у версії Fortran 90; функційне програмування у версії Fortran 95 (частково), об'єктно-орієнтоване програмування та узагальнене програмування у версії Fortran 2003. Узагальнене паралельне програмування з допомогою co-arrays, що використовує архітектурно-незалежний та близький для фортрану синтаксис для паралельної декомпозиції даних та виконання інструкцій, було стандартизовано у версії Fortran 2008.

До 1960 версії мови Фортран були доступні для комп'ютерів IBM моделей 709, 650, 1620, і 7090. Зростання популярності мови спонукало виробників комп'ютерів забезпечити компіляторами Фортрану свої машини, до 1963 існувало понад 40 різних компіляторів Фортрану.

До появи дисків та файлів, текстових редакторів та терміналів, програми найчастіше вводили за допомогою перфокарт на клавіатурі перфоратора на 80 знаків. Колода карт подавалася в спеціальний для компіляції. Тому оригінальний код Фортрану мав фіксований формат завдовжки 80 символів (стовпчиків). Не підтримувалась рекурсія та підпрограми.

FORTRAN

Наприкінці 1953 Джон В. Бекус запропонував своєму керівництву в IBM розробити більш практичну альтернативу мови програмування для їхньої ЕОМ IBM 704. До команди створення мови Фортран увійшли також програмісти Річард Ґолдберґ, Шелдон Бест, Гарлан Геррік, Пітер Шерідан, Рой Натт, Роберт Нельсон, Ірвін Ціллер, Лоїс Гейбт, Девід Сейр. Проєкт специфікації системи було завершено до середини 1954. Перший посібник для мови Фортран з'явився в жовтні 1956, а перший компілятор  — у квітні 1957.

Це був перший у світі оптимізувальний компілятор, оскільки клієнти погоджувалися використовувати мови програмування високого рівня тільки якщо компілятор зможе генерувати код з продуктивністю близькою до коду, який може написати досвідчений програміст безпосередньо на асемблері. Мова була позитивно прийнята вченими та інженерами для написання програм, котрі створили необхідні умови та ринок для створення компіляторів, які можуть генерувати більш швидкий і ефективний код. Додання комплексних чисел зробило мову особливо зручною також для технічних та інженерних програм, таких як електротехніка.

FORTRAN II FORTRAN II від IBM з'явився 1958. Основними поліпшеннями були підтримка процедурного програмування, тобто підпрограми і функцій з параметрами, що передавалися за посиланням (by reference). Для підпрограм надали можливість доступу до глобальних змінних.

FORTRAN III 1958 IBM розробила FORTRAN III, що дозволяв писати на асемблері у функціях, цю версію не випустили на ринок як готовий продукт.

FORTRAN для IBM 1401 Для машини IBM 1401 було створено інноваційний на той час 63-прохідний компілятор Фортрану, розміром 8 кілобайт. Він зберігав код програми в пам'яті та одночасно поступово транслював її машинною мовою — це був перший у світі інтерпретатор мови програмування. Наступний інтерпретатор для іншої мови (Паскаль) зʼявився 1970.

FORTRAN IV Починаючи з 1961, після вивчення потреб клієнтів, компанія IBM розпочала розробку версії FORTRAN IV, в якій були видалені машиннозалежні особливості FORTRAN II (такі як READ INPUT TAPE), і додано багато нових елементів, таких як: логічний тип даних, логічні операції та логічний IF як альтернативу арифметичному IF. FORTRAN IV випустили 1962, спочатку для комп'ютерів IBM 7030 («Stretch»), а потім і для IBM 7090 та IBM 7094. До 1965 FORTRAN IV був «стандартом» відповідно до American Standards Association X3.4.3 FORTRAN Working Group.

FORTRAN 66 Після рішення Американської асоціації стандартів (ANSI зараз) сформувати комітет для розробки «американського стандарту Фортрану» в березні 1966 Fortran 66 фактично став першою «стандартною для індустрії» версією Фортрану.

Fortran 66 мав дуже багато удосконалень: програмні одиниці: головна програма, subroutine, function, та block data; типи даних integer, real, double precision, complex та logical; інструкції common, dimension, і equivalence; інструкція data для специфікації початкових значень змінних; функції intrinsic та external (тобто бібліотечні); інструкції goto, визначений goto, та обчислюваний goto; логічний та арифметичний (триваріантний) if; цикл do; ключові слова для послідовних операцій вводу-виводу read, write, backspace, rewind, та endfile; інструкція для форматованого вводу-виводу format; інструкції call, return, pause, та stop; константи Голлеріта у виразах data та format, а також як аргументи для процедур; ідентифікатори з довжиною до 6 символів, можливість запису коментарів у коді.

FORTRAN 77 Після оприлюднення стандарту FORTRAN 66, виробники компіляторів продовжували на прохання користувачів додавати розширення для мови, що змусило ANSI 1969 року почати перегляд стандарту, затвердженого 1966 року. Остаточні проєкти наступного стандарту завершено 1977 року, офіційне затвердження стандарту FORTRAN 77 відбулося в квітні 1978 року.

Новий стандарт FORTRAN 77 додавав низку істотних особливостей для вирішення багатьох недоліків FORTRAN 66: блоки if ... end if, з опціональними else ... else if, що значно полегшували структурне програмування; розширення циклів з параметричними виразами, негативним інкрементом та нульовим циклом do ; інструкції open, close, та inquire для роботи з файлами, а також прямий доступ до файлів; вираз implicit та символьний тип даних character з великою кількістю функцій для нього; parameter для декларування констант; save для постійних локальних змінних; загальні імена для вбудованих функцій. У цій версії стандарту окремі інструкції були вилучені або оголошені застарілими (тобто такими, що будуть вилучені в наступних версіях мови).

Fortran 90 Зі значним запізненням, як наступник FORTRAN 77, відомий зараз як Fortran 90 (попередня назва Fortran 8X) був випущений як стандарт ISO 1991 і стандарт ANSI 1992. Це був досить масштабний перегляд попереднього стандарту, котрий також враховував нові тенденції та розвиток інших мов. Було додано безліч нових функцій, щоб відобразити значні зміни в практиці програмування: нефіксована форма запису джерельного коду (інструкції можуть бути розміщені де завгодно в рядку, & означає продовження інструкції в наступному рядку, ; розділяє кілька інструкцій в одному рядку) а також запис ключових слів малими літерами; ідентифікатори змінних довжиною до 31 символа; вбудовані однорядкові коментарі !; операції над масивами як ціле, та над вибірками масивів, що значно спрощувало математичні та інженерні обчислення, введено поняття масиву без елементів (нульового розміру); рекурсивні процедури (підпрограми та функції); модулі module ... end module для групування пов'язаних процедур і даних, щоб зробити їх доступними для інших частин програми, включаючи можливість обмежувати доступ тільки до певних частин модуля з допомогою private/public; значно покращився механізм передачі аргументів (атрибути optional, intent(in/out/inout)), що дозволяло перевіряти інтерфейси функцій та процедур під час компіляції (атрибут intrinsic); додано також опцію result() для оголошення назви змінної, що повертається функцією; передбачено створення інтерфейсів interface ... end interface користувачем для узагальнених процедур; перевантаження операторів; похідні/абстрактні типи даних type ... end type з оператором вибору компонента %; новий тип синтаксису для декларації типу даних та інших атрибутів змінних: kind (та додатково len для символьного character вбудованого типу), save, та іменованих констант parameter; динамічне виділення пам'яті за допомогою атрибутів allocate/deallocate та allocatable; вказівник pointer та атрибут target для типу, на який вказує вказівник,— для полегшення створення та операцій з динамічними структурами даних; нові оператори порівняння <, <=, ==, /=, >, >=; структуровані циклічні конструкції do i = x,y,z ... end do з end do, а не continue для завершення циклу, cycle та exit для контролю та виходу з ітерацій циклу; цикли do while () ... end do, необмежені цикли у формі do ... end do без лічильника; select case ... end select для багатоходового вибору; sequence інструкцію для контролю запису на фізичний носій об'єктів похідних типів, якщо такі об'єкти знаходяться в інструкціях equivalence та common; конструкцію where () ... elsewhere ... end where для полегшення маніпуляцій з масивами; специфікації точності обчислень під контролем користувача; нові та вдосконалені вбудовані процедури (понад 100 нових функцій та підпрограм); На відміну від попередніх версій, з версії стандарту Фортран 90 не було видалено жодного елементу, однак багато оголосили застарілими: нецілі лічильники в конструкціях циклів, завершення циклу з допомогою визначеної мітки, спільні continue для вкладених do циклів, арифметичні конструкції if(x) a,b,c, інструкцію pause, assign.

Fortran 95 Fortran 95 був незначним переглядом попереднього стандарту, переважно для вирішення нагальних питань з практики програмування за допомогою стандарту Fortran 90.

До версії Fortran 95 також було додано розширення: з так званого високопродуктивного фортрану (High Performance Fortran): forall і вкладені інструкції where, для полегшення векторизації; pure і елементарні elemental процедури; стандартна ініціалізація за замовчуванням компонентів похідних типів; розширено можливості використання виразів ініціалізації; доповнили явним роз'ясненням, що пам'ять зайнята динамічними (allocatable) масивами автоматично звільняється, коли вони виходять з своєї області видимості; розширили кількість вбудованих функцій. Окремі інструкції відзначені у версії Fortran 90 як застарілі, були видалені з версії Fortran 95: цикли з дійсними лічильниками, pause тощо.