В 1957 году IBM выпустила первый компилятор FORTRAN после 4 лет разработки концепции более простого способа ввода уравнения в компьютер, чем язык с ручным кодированием, такой как ассемблер.

До FORTRAN более ранние языки состояли из последовательности числовых кодов, каждый из которых представлял базовую операцию, которую можно выполнить с компьютерным регистром, например, «выбрать» число из памяти в регистр или «сложить» для сложения двух чисел. занимали много времени и были подвержены ошибкам.

Научный программист IBM Джон Бэкус обнаружил, что можно написать ряд вычислений, выраженных в математической записи, а затем использовать транслятор (то, что мы сейчас называем компилятором) из этой математической записи в числовые коды, которые более ранний язык использовал для взаимодействия с аппаратное обеспечение. Это предложение в 1953 году привело к созданию системного языка перевода формул (FORTRAN).

Спустя 65 лет (на момент написания статьи) появилось множество других языков программирования, которые исчезли через пару лет, например, COBOL, Objective C и многие другие. Тем не менее, FORTRAN все еще используется, возможно, не так популярен, как в прошлом, но в некоторых сообществах он занимает высокое место среди наиболее используемых языков, одним из таких сообществ является научное сообщество, и вот причины.

Почему научное сообщество до сих пор использует FORTRAN?

Поскольку FORTRAN изначально был разработан специально для научных вычислений и в основном использовался для операций с массивами, будь то весь массив или его срез, одной из веских причин его выживания является простой в использовании синтаксис массива, который гарантировал долговечность длинного кода.

Массивы являются объектами первого класса в FORTRAN. Это абстракция более высокого уровня для массивов по сравнению с C, которая упрощает для ученых описание предметной области своей модели в многомерных массивах на FORTRAN, чем на любом другом языке.

Простой язык на основе ограничений

Слишком много ограничений - еще одна особенность FORTRAN, эти ограничения, наложенные на программистов, дали компилятору наилучший возможный код для оптимизации, в то время как в других языках, таких как C, у программиста есть большая свобода, которая в большинстве случаев привела бы к замедлению кода. .

Унаследованный код и обратная совместимость

Как и в случае с большинством научных алгоритмов, дифференциальные уравнения и их решатели не устаревают, поэтому применимость того же кода, который был разработан несколько десятилетий назад, без необходимости исправлять несовместимый старый синтаксис с новыми версиями компилятора. , и без ухудшения производительности была обеспечена обратная совместимость с FORTRAN. Строгая политика обратной совместимости FORTRAN помогла всему устаревшему коду не считаться устаревшим.

Помимо обратной совместимости, большинство исследовательских центров и научных организаций имеют устаревший код FORTRAN, поскольку это был один из немногих доступных вариантов, когда они начинали разработку своего базового кода, и со временем стало проще и эффективнее продолжать разработку в том же язык, отличный от перехода на полностью современный язык, особенно в связи с отсутствием вычислительной выгоды, поскольку многие ученые не имеют опыта работы с компьютерными науками. Степень того, что они могут писать очень сложные алгоритмы, затрудняет перенос кода на другой язык. Переписывать кодовую базу с более чем 10000 коммитов кода FORTRAN (например, моделей климата) — все равно, что перестраивать весь район.

Поддержка вычислений NVIDIA и GPU для FORTRAN?

Многие коды могут быть распределены по многим вычислительным ядрам, и для этого FORTRAN предлагает еще один уровень улучшения, интерфейс передачи сообщений (MPI). MPI позволяет распределить область вашей модели по многим процессорам, что помогает ускорить вычисления и повысить производительность. Не все языки могут использовать MPI с той же производительностью, что и FORTRAN.

CUDA FORTRAN — это еще одна функция параллельного программирования, которая началась с FORTRAN 2008, разработанного NVIDIA. CUDA FORTRAN — это низкоуровневая модель явного программирования, которая дает программисту прямой доступ и управление всеми функциями графического процессора, включая данные, управляемые CUDA. CUDA позволяет разработчикам ускорить приложения с интенсивными вычислениями, распределяя распараллеливаемую часть своих вычислений на разные чипы графического процессора.

со всеми этими функциями, улучшающими вычисления, которые добавляются в FORTRAN, я могу сказать, что FORTRAN останется в списке лучших языков программирования для ученых.