Открыть сервис

Фортран-77

Фортран-77 (Fortran 77, также FORTRAN 77) — это стандарт языка программирования Фортран (FORTRAN), принятый Американским национальным институтом стандартов (ANSI) в 1978 году (ANSI X3.9-1978) и Международной организацией по стандартизации (ISO) в 1980 году (ISO 1539-1980). Он является преемником стандарта FORTRAN IV (1966) и в течение многих лет был основным рабочим инструментом для научных, инженерных и вычислительных расчётов, особенно в области численного анализа, физики, аэродинамики и метеорологии. Фортран-77 ввёл ряд структурных улучшений, сделавших язык более пригодным для написания логически организованных и переносимых программ, хотя и сохранил многие архаичные черты, присущие ранним версиям Фортрана.

История

Предпосылки создания

К середине 1970-х годов язык FORTRAN IV, стандартизированный в 1966 году, стал объектом критики за отсутствие средств структурного программирования, ограниченные возможности работы с символами и строки, а также за зависимость от конкретных реализаций. Программисты вынуждены были использовать оператор GOTO для организации циклов и ветвлений, что приводило к появлению «спагетти-кода». Параллельно набирали популярность языки Algol, Pascal и C, предлагавшие более современные конструкции.

Разработка и принятие стандарта

Работа над новым стандартом началась в 1975 году под эгидой комитета ANSI X3J3. Ключевой задачей было не создание радикально нового языка, а эволюционное улучшение FORTRAN IV с сохранением обратной совместимости. В 1978 году стандарт был утверждён как ANSI X3.9-1978, а в 1980 году — как международный стандарт ISO 1539-1980. Официальное название — «FORTRAN 77» — отражало год принятия американского стандарта.

Распространение и влияние

Фортран-77 стал доминирующим языком в научных и инженерных кругах на протяжении 1980-х и первой половины 1990-х годов. На нём были написаны тысячи библиотек численных методов (например, LINPACK, EISPACK, BLAS, MINPACK) и крупных программных комплексов, многие из которых используются до сих пор. В СССР и России Фортран-77 был широко распространён на ЕС ЭВМ (аналогах IBM System/360) и персональных компьютерах, поддерживался компиляторами, такими как FORTRAN-77 (версия для ДВК и СМ ЭВМ) и более поздними реализациями для MS-DOS и Windows. Стандарт оставался актуальным до появления Fortran 90, который ввёл принципиально новые возможности (свободный формат, модули, динамические массивы).

Основные характеристики

Синтаксис и формат записи

Фортран-77 сохранил фиксированный формат записи исходного кода, унаследованный от эпохи перфокарт. Каждая строка делится на поля:

  • Столбцы 1–5: поле метки (числовой номер строки, от 1 до 99999).
  • Столбец 6: поле продолжения (если строка является продолжением предыдущей, ставится любой символ, кроме пробела и нуля).
  • Столбцы 7–72: поле оператора (собственно код на Фортране).
  • Столбцы 73–80: поле идентификации (необязательное, для нумерации или комментариев; игнорируется компилятором).
  • Строки, начинающиеся с символа C или * в столбце 1, считаются комментариями.

Типы данных

В языке определены следующие встроенные типы данных:

  • INTEGER — целые числа (обычно 4 байта).
  • REAL — вещественные числа одинарной точности (обычно 4 байта, 6–7 значащих цифр).
  • DOUBLE PRECISION — вещественные числа двойной точности (обычно 8 байт, 15–16 значащих цифр).
  • COMPLEX — комплексные числа (два вещественных числа одинарной точности).
  • LOGICAL — логический тип (значения .TRUE. и .FALSE.).
  • CHARACTER — символьный тип (строки фиксированной длины, введён впервые в стандарте 1977 года).

Управляющие конструкции

Фортран-77 ввёл блочный оператор IF (IF-THEN-ELSE-END IF), что стало значительным шагом в сторону структурного программирования. Однако язык по-прежнему поддерживал арифметический IF (трёхветвевой) и оператор безусловного перехода GOTO. Циклы реализовывались с помощью оператора DO с фиксированным числом итераций.

Ввод-вывод

Фортран-77 предоставляет мощные средства форматированного и неформатированного ввода-вывода. Формат задаётся оператором FORMAT, который описывает расположение данных в строке. Например, FORMAT(1X, I5, F10.2) выводит целое число в 5 позиций и вещественное число в 10 позиций с двумя знаками после запятой. Также поддерживается ввод-вывод с файлами через оператор OPEN.

Классификация и виды

По реализации

  • Компиляторы для мейнфреймов: IBM FORTRAN IV (H Extended), FORTRAN 77 для Cray, CDC.
  • Компиляторы для мини-ЭВМ: DEC FORTRAN 77 (для PDP-11, VAX), Data General FORTRAN 77.
  • Компиляторы для персональных компьютеров: Microsoft FORTRAN 77, Lahey FORTRAN, Watcom FORTRAN, Salford FORTRAN.
  • Свободные компиляторы: GNU Fortran (g77) — часть коллекции компиляторов GCC, поддерживающая стандарт Фортрана-77 и частично Fortran 90.

По расширениям

Многие производители добавляли в свои реализации нестандартные расширения, такие как:

  • INCLUDE — включение внешних файлов.
  • IMPLICIT NONE — запрет неявного объявления типов.
  • DO WHILE — цикл с условием.
  • STRUCTURE и RECORD — пользовательские типы данных (например, в VAX FORTRAN).

Применение

Научные и инженерные расчёты

Фортран-77 остаётся языком выбора для многих задач вычислительной физики, гидродинамики, квантовой химии, метеорологии и сейсмологии. Основные причины:

  • Высокая производительность сгенерированного кода.
  • Обширные библиотеки численных методов, написанные на Фортране.
  • Эффективная работа с массивами и циклами.

Образование

В 1980-х и 1990-х годах Фортран-77 широко использовался для обучения основам программирования в технических вузах, особенно на специальностях, связанных с вычислительной математикой и физикой.

Наследие

Многие современные программы, написанные на Фортране-77, продолжают эксплуатироваться, особенно в оборонной, аэрокосмической и энергетической отраслях. Их модернизация на более современные языки (C++, Python) часто оказывается экономически нецелесообразной из-за огромного объёма кода и высокой стоимости верификации.

Пример кода

Пример программы на Фортране-77, вычисляющей сумму первых 10 натуральных чисел:

``fortran PROGRAM SUM10 C ВЫЧИСЛЕНИЕ СУММЫ ЧИСЕЛ ОТ 1 ДО 10 INTEGER I, SUM SUM = 0 DO 10 I = 1, 10 SUM = SUM + I 10 CONTINUE WRITE(*, 100) SUM 100 FORMAT(1X, 'СУММА = ', I5) STOP END ``

Критика

Недостатки

  • Архаичный синтаксис: фиксированный формат, ограничение длины строки в 72 символа, обязательные метки для циклов.
  • Отсутствие динамических структур: все массивы должны иметь фиксированный размер, объявленный на этапе компиляции.
  • Слабая работа с памятью: нет указателей, динамического выделения памяти, рекурсии.
  • Ограниченная поддержка строк: строки фиксированной длины, отсутствие операций конкатенации и поиска подстроки.
  • Сложность отладки: из-за обилия операторов GOTO и отсутствия структурированных конструкций.

Достоинства

  • Высокая производительность: компиляторы Фортрана-77 традиционно генерируют очень эффективный машинный код.
  • Переносимость: стандарт обеспечивал высокую степень переносимости программ между разными платформами.
  • Надёжность: строгая типизация и отсутствие указателей снижают риск ошибок, связанных с памятью.

Интересные факты

  • Первый компилятор Фортрана был создан в 1957 году, то есть язык старше многих современных программистов.
  • Фортран-77 до сих пор используется в некоторых суперкомпьютерных центрах, например, для расчётов климата и погоды.
  • Символ * в Фортране-77 может означать как комментарий, так и оператор умножения, что иногда вызывает путаницу.
  • В 2023 году в мире всё ещё работают миллионы строк кода на Фортране-77, особенно в аэрокосмической и оборонной промышленности.

Источники

  • ANSI X3.9-1978. American National Standard for Programming Language FORTRAN. — American National Standards Institute, 1978.
  • ISO 1539-1980. Programming Languages — FORTRAN. — International Organization for Standardization, 1980.
  • Меткалф М., Рид Дж. Фортан 90/95: Руководство программиста. — М.: Мир, 1998.
  • Керниган Б., Ритчи Д. Язык программирования Си. — М.: Вильямс, 2006. (сравнение с Фортраном)
  • Материалы сайта fortran-lang.org (история и современное состояние языка).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →