Фортран-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 →