Язык программирования Фортра́н (Fortran). Язык программирования fortran (фортран)

Алфавит - в программировании – система неразложимых, уверенно отличимых друг от друга символов (букв, цифр, знаков препинания и др. символов), используемых для построения языков программирования.

Синтаксис - сторона языка программирования, которая описывает структуру программ как наборов символов. Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения различным синтаксическим конструкциям.

Сема́нтика - в программировании - система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений алгоритмического языка.

Языки программирования низкого уровня – Автокод, Ассемблер,

Языки программирования высокого уровня -Фортран, Алгол, Кобол, Паскаль, Бейсик, Си++, Пролог

Языки программирования сверхвысокого уровня – APL, Алгол-68

Вычислительные Языки программирования - Фортран, Паскаль, Алгол, Бейсик, Си

Языки символьной обработки – Лисп, Пролог, Снобол и др.

Языки первого поколения:

Машинные коды были языком программирования первого поколения

Языки второго поколения:

Ассемблер

Языки третьего поколения:

эти языки часто обозначаются как языки «высокого» уровня.

Языки четвертого поколения:

Бейсик, Кобол, Си и Паскаль

Языки программирования пятого поколения:

Пролог, ЛИСП, Си++, Visual Basic, Delphi.

Язык программирования Фортра́н (Fortran)

Первый язык программирования высокого уровня, имеющий транслятор. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является акронимом от FORmula TRANslator (переводчик формул). Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана - большое количество написанных на нём программ и библиотек подпрограмм. Большинство таких библиотек является фактически достоянием человечества: они доступны в исходных кодах, хорошо документированы, отлажены и весьма эффективны. Поэтому изменять, а тем более переписывать их на других языках программирования накладно, несмотря на то, что регулярно производятся попытки автоматического конвертирования FORTRAN-кода на современные языки программирования.

Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования для новых вычислительных архитектур, позволяет применять современные технологии программирования, в частности, ООП.

Эволюция стандартов языка

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

FORTRAN 77 (1980)

Введено множество улучшений:

Введены операторы открытия и закрытия файла (OPEN, CLOSE) и вывода на стандартное устройство - PRINT.

Добавлены строковый тип данных и функции для его обработки.

Введён блочный оператор IF и конструкция IF THEN - ELSE IF THEN - END IF, а также оператор включения фрагмента программы INCLUDE.

Введена возможность работы с файлами прямого доступа.

Увеличена максимальная размерность массива с 3 до 7. Сняты ограничения на индексы массива.

Усовершенствованы и расширены возможности работы с процедурами.

Введено понятие внутреннего файла (каковыми являются массивы, числовые и строковые переменные). Внутренние файлы позволяют, в частности, осуществлять преобразование число-строка и строка-число стандартным операторами чтения и записи READ и WRITЕ.

Fortran 90 (1991)

Значительно переработан стандарт языка.

Введён свободный формат написания кода. Появились дополнительные описания IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST.

Введены управляющие операторы и конструкции. Добавлены DO … END DO (вместо завершения цикла меткой), DO WHILE, оператор передачи управления на начало цикла CYCLE, конструкция выбора SELECT CASE (для замены громоздких конструкций IF и операторов GOTO), а также заключительный оператор программной единицы, модульной или внутренней процедуры END.

Введён инструментарий указателей и функции для работы с оперативной памятью (по аналогии с языком С).

Введены операторы работы с динамической памятью (ALLOCATE, DEALLOCATE, NULLIFY).

Добавлены программные компоненты MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT.

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

Стандартные операции присваивания, сложения, вычитания, а также деления и умножения на число распространены на массивы и их секции, определяемые сечениями. В этом случае осуществляется поэлементное присваивание.

Появились новые встроенные функции, в первую очередь для работы с массивами. Функции для вычислений в массивах: ALL(лог. произведение) и MASK(логическое сложение), COUNT(число истинных элементов), PRODUCТ(произведение элементов массива), SUM(сложение элементов массива), DOT_PRODUCT (скалярное произведение), MATMUL (умножение матриц). Добавились справочные функции, а также функции переформирования и свёртки массивов.

В языке появились элементы ООП. Введены производные типы данных. Отдельно объявлен список устаревших черт языка, предназначенных для удаления в будущем.

Добавлены дополнительные функции для работы со строковыми данными, в частности, функции TRIM (удаление завершающих пробелов) и REPEAT(кратное копирование строки) и функции выравнивания по левой и правой границам.

Fortran 95 (1997)

Коррекция предыдущего стандарта. Введён оператор и конструкция FORALL, позволяющие более гибко, чем оператор и конструкция WHERE, присваивать массивы и заменять громоздкие циклы. FORALL позволяет заменить любое присваивание сечений или оператор и конструкцию WHERE, в частности, обеспечивает доступ к диагонали матрицы. Данный оператор считается перспективным в параллельных вычислениях, способствуя более эффективному, чем циклы, осуществлению распараллеливания.

Fortran 2003 (2004)

Дальнейшее развитие поддержки ООП в языке. Взаимодействие с операционной системой. Добавлены также следующие возможности:

Асинхронный ввод-вывод данных.

Средства взаимодействия с языком C

Усовершенствование динамического размещения данных

Стандартом предполагается поддержка средствами языка параллельных вычислений (Co-Arrays Fortran). Также предполагается увеличить максимальную размерность массивов до 15, добавить встроенные специальные математические функции и др.

Fortran (также FORTRAN) это язык программирования , разработанный в начале 1950-х годов и используемый до сих пор. Название является сокращением от "FORmula TRANslator". Ранние версии языка были известны как FORTRAN, но буквы перестали быть заглавными начиная с версии Fortran 90. Официальные стандарты языка теперь именуют язык как "FORTRAN".

>Fortran в основном используется для научных расчетов и численного анализа. Хотя первоначально это был процедурный язык, но в последние версии Fortran включили некоторые функции для поддержки объектно-ориентированного программирования для начинающих.

Первый компилятор FORTRAN был разработан для IBM 704 в 1954-57 в команде IBM под руководством Джона Бэкуса (John W. Backus). Это было оптимизирующий компилятор, потому что авторы рассудили, что никто не будет использовать язык, даже при изучении программирования для чайников, если его производительность не будет сравнима с ассемблером.

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

Известно несколько версий языка, в том числе известные FORTRAN IV (также известный как FORTRAN 66), Fortran 77 и Fortran 90. Последний формальный стандарт для языка, опубликованный в 1997 году, известен как Fortran 95. Версии языка от IBM никогда не были так популярны, как, разработанные другими компаниями, и это особенно касается FORTRAN IV - WATFOR, версия FORTRAN IV, разработанная в Университете Ватерлоо в Канаде, была наиболее востребованной, поскольку выводила лучше остальных выводила сообщения об ошибках компиляции. Точно также, программное обеспечение для автоматической генерации блок-схем из FORTRAN программ было разработано за пределами IBM

Первоначально, язык опирался на точность форматирования исходного кода и интенсивное использования числовые состояния и оператор GOTO. Эти причуды были удалены из новых версий языка. Последующие версии также представили "современные" концепции программирования, такие как комментарии в исходном коде и вывод текста, операторы IF-THEN-ELSE (в FORTRAN 77), рекурсия (в Fortran 90), и параллельные вычисления, в то же время пытаясь сохранить в Fortran "постный" профиль и высокую производительность. Среди самых популярных основанных на Fortran языках, можно выделить SAS, предназначенного для получения статистических отчетов, и SIMSCRIPT, для моделирования процессов массового обслуживания.

Продавцы высокопроизводительных научных компьютеров (Burroughs, CDC, Cray, IBM, Texas Instruments) добавили расширения для Fortran, чтобы включить использование специальных аппаратных особенностей, таких как: кэш инструкций, процессор pipe-соединений, векторных массивов и т. д. Например, один из Fortran компиляторов IBM (H Extended IUP) содержал уровень оптимизации, которая заставляла инструкции машинного кода держать несколько внутренних блоков арифметической занятыми все время. Другим примером является CFD, особый "вариант" Фортран, разработанный специально для суперкомпьютера ILLIAC IV, работающий в исследовательском центре NASA Ames. Эти расширения, либо исчезли с течением времени или же эти элементы были включенны в основной стандарт; основным расширением является OpenMP, которое является кросс-платформенной расширением для доступа к общей памяти. Еще одно из новых расширений, CoArray Fortran, призван способствовать развитию параллельного программирования и .

Первая попытка разработки на Erlang новичка может сильно расстроить потому, что синтаксис этого языка считается тайнописью многими программистами, которые начинали изучение с современных языков. Трудно писать лексический анализатор, когда всего один ошибочный символ может привести к ошибке времени выполнения, а не ошибки компиляции, если указанные конструкции не используются. В некоторых самых ранних версиях, не было объектов (ООП), которые рассматриваются в качестве полезных атрибутов программирования в современных условиях, или, например, отсутствовало динамическое распределение памяти. В то же время, синтаксис языка Фортран был применим к научным работам и вычислениям, связанным операциями над числами, а многие из его недостатков были учтены в более поздних версиях. Например, Fortran 95 имеет очень короткие команды для выполнения математических операций с матрицами и массивами, которые не только значительно улучшает читаемость программы, но также дает полезную информацию для компилятора чтобы она могла векторизовать операции. По этим причинам, Fortran не часто используется за пределами научных и инженерных вычислений, он остается языком для высокой производительности численных вычислений.

* "Магия ПК" 2000 №6(28), С. 49–50.

В 1955 году увидел свет первый алгоритмический язык высокого уровня FORTRAN (FORmula TRANslator – транслятор формул). Он использовался в основном для решения научно-технических и инженерных задач, а разработали его сотрудники фирмы IBM под руководством Джона Бэкуса . Чуть позже, в 1957 году, Джон Бэкус и его сотрудники установили в IBM (Beстингхауз) первый компилятор языка Фортран. Программисты, ранее работавшие исключительно на Ассемблере, скептически относились к возможностям высокопроизводительного языка высокого уровня, поэтому основным критерием при разработке стандартов на Фортран и создания компиляторов с этого языка была эффективность исполняемого кода. Кстати, термин "компилятор" тогда еще широко не использовался, хотя уже был введен Грейс Хоппер – единственной в США женщиной-адмиралом, которую называли также "первой леди программирования и бабушкой Кобола".
Большинство операторов Фортрана транслировались непосредственно в одну–две машинные команды, простые синтаксические конструкции и активное использование меток и goto позволяло получить очень быстрый код, и в результате программы на Фортране подчас работали быстрее ассемблерных. Сама внутренняя структура оттранслированной программы была также очень простой – весь код, все подпрограммы и все данные вместе с общим блоком размещались исключительно в статической памяти, из-за чего, правда, невозможно было использовать рекурсию.
Поскольку Фортран был первым языком высокого уровня, отвечающим нуждам большинства пользователей того времени, да еще и простым в изучении, распространился он очень быстро.
Из-за широкого распространения этого языка и появления множества Фортран-программ (преимущественно вычислительного характера) насущным стал вопрос его стандартизации. Сначала это был стандарт Fortran IV 1964 года, затем, по мере появления новых идей, в 1978 году был принят новый стандарт Fortran 77 (f77) с большим числом более современных и гибких синтаксических расширений. Сегодня наиболее распространенным вариантом Фортрана являются Fortran 90 (f90) и Fortran 95 . Группа энтузиастов заканчивает работу над суперверсией языка F2k, которая будет опубликована в этом году.
Хотя в новые версии языка вносились подчас как ненужные дополнения (например, расширения, связанные с динамической аллокацией памяти), так и полезные, типа модульной организации программы, работы с частями массивов и др., сегодня этот язык нельзя назвать перспективным для изучения, так как синтаксис его значительно устарел.
Однако тем, кому довольно часто приходится решать различные вычислительные задачи, совсем не обязательно каждый раз брать в руки учебник по математике и "начинать с нуля". В 90% подобных случаев то, что вы ищете, уже давно реализовано и отлажено на Фортране. Поэтому, скорее всего, жизнь Фортрану обеспечена надолго.
Есть и еще одна, сравнительно молодая ниша для Фортрана – параллельные вычисления, где строгая семантика языка позволяет получать высокопроизводительные программы. Обычно используется стандарт f90, немного расширенный набором операторов для указания пригодных к распараллеливанию частей программы. Параллельный Фортран имеет свой стандарт HPF (High Performance Fortran). Тем не менее фанаты Фортрана, девизом которых стала легендарная фраза "Зачем мне изучать другие языки, когда я могу всё написать на Фортране", ощущали его очевидную непригодность для крупномасштабных проектов, связанную с привязанностью к синтаксису 50-х годов, и пытались ввести в него модные идеи ООП, но объектный Фортран в качестве стандарта так и не появился.
Среди бесплатно распространяемых версий Фортрана наиболее известен f2c, реализованный для всех UNIX-систем и преобразующий текст Фортран-программы в Си-код. Для DOS имеется версия bcf77, распространяемая бесплатно. Из коммерческих версий в первую очередь надо отметить Microsoft Fortran, позволяющий создавать dll-библиотеки, и Watcom Fortran, генерирующий высокоэффективный код. Для задач, требующих высокой точности вычислений, предназначен компилятор фирмы MicroWay. А вообще различные по качеству компиляторы Фортрана имеются на абсолютно всех компьютерных платформах.
Однако основная заслуга Фортрана в другом. Когда появилась необходимость в разработке очень крупных проектов, недостатки Фортрана, связанные в первую очередь с "тяжелой" отладкой, стали излишне обременительны. Поэтому Фортран послужил сильнейшим стимулом для развития теории отладки и тестирования программ. Появились сотни синтаксических верификаторов Фортран-текстов, вылавливающих скрытые логические ошибки. В дальнейшем из этого направления выросли такие теоретические области программирования, как эквивалентные оптимизирующие преобразования программ, высокоуровневая компиляция, автоматическое тестирование и т.д. Так что про Фортран забывать никак нельзя. Использовать его в качестве инструментария в задачах системной интеграции, наверное, не имеет смысла, но то, что было наработано лучшими программистами за 30–40 лет, вполне может ускорить процесс разработки. По крайней мере, программных "кирпичиков" для Фортрана ныне существует несравненно больше, чем для других языков программирования. ■

* * *
Джон Бэкус родился 3 декабря 1924 в Филадельфии, штат Пенсильвания, в богатой семье, детские годы провел в Вилмингтоне. Закончив школу в 1942 году, он поступил в университет штата Вирджиния на химический факультет (по настоянию отца-химика), но спустя некоторое время перестал заниматься и в 1943 году был призван на военную службу.
Бэкус начинал служить в бригаде противовоздушной обороны в форте Stewart, штат Джорджия, но впоследствии был направлен в колледж для изучения медицины.
Некоторое время он с увлечением работал в городской больнице, но в 1946 году охладел к этой работе, оставил армию и переехал в Нью-Йорк, хотя не знал за что браться и как жить дальше.
Через некоторое время Бэкус поступил в школу подготовки радиотехников. "У меня был очень хороший преподаватель, и он попросил, чтобы я вычислил характеристики некоторых схем. Это было страшно утомительно, но крайне интересно".
Вскоре Бэкус поступил в Колумбийский университет (Нью-Йорк), чтобы изучать математику, где и получил высшее образование (1949 г.). Незадолго перед тем, как закончить обучение, он посетил компьютерный центр IBM на Мэдисон Авеню. И здесь удача во второй раз улыбнулась ему – в 1950 году Бэкус стал программистом компании IBM.
О доминировании IBM в компьютерной индустрии впервые заговорили в 1952 году. Всё началось с модели 701, известной также под именем Defence Calculator (оборонный вычислитель). Сразу после выпуска модели 701 специалисты подразделения прикладных исследований приступили к ее совершенствованию (1955–1956 годы).

Наиболее серьезные изменения предложил внести Джон Бэкус, впоследствии принимавший активное участие в создании компьютера 704. В частности, благодаря ему появилась технология так называемого "ускоренного кодирования" (speed-coding), позволившая заметно упростить написание программ для 701. "Возможность ускоренного формирования кода для машины 701, которая представляла собой одноадресный компьютер с фиксированной запятой без индексных регистров, превратила ее в систему с плавающей запятой, произвольной адресацией и индексными регистрами, – вспоминал Бэкус. – Таким образом, пользователям больше не нужно было мучиться с двоичным кодом".
Уже тогда появились первые компоненты технологии быстрого написания программ, которая используется сегодня. Фактически данная система стала предшественницей аналогичных комплексов, которые были выпущены в 50–60 годах и впоследствии вытеснены языками высокого уровня.
А в 1955 году Бэкус "изобрел" Фортран, первый машинный язык высокого уровня. Впоследствии, вспоминая этот период, Бэкус скажет: "Мы не знали, к чему стремиться, и не знали, как это сделать". Первоначально все работы планировалось завершить в начале 1954 года, однако разработка языка завершилась практически через два года.
Первая версия компилятора состояла из 25000 строк машинного кода, записанного на магнитной ленте. Каждая IBM 704 обеспечивалась копией программы с руководством по программированию на 51 странице.
В 1959 году Бэкус разработал грамматические правила для описания синтаксиса языков высокого уровня (нормальная форма Бэкуса-Наура, сокращенно БНФ).
В 1976 году Джон Бэкус был награжден Национальной медалью за вклад в науку, а с 1991 года перестал заниматься компьютерной тематикой.

Владимир Буслаев

OCR: fir-vst, 2016

Язык программирования Fortran используется в основном для научных вычислений. Изобретенный в 1954 году, это старейший язык программирования высокого уровня, за которым последовал Lisp (1958), Algol (1958) и COBOL (1959). Число научных библиотек, написанных на "Фортране", и создание специальных переводчиков-компиляторов позволяют использовать язык и сегодня. Кроме того, были созданы множественные калькуляторы для векторизации, сопроцессоров, параллелизма, которые вкрапляют этот язык для использования в промышленном производстве современного мира.

Джон Бэкус, радиотехник IBM, опубликовал в 1954 году статьи под заголовками «Предварительный отчет», «Спецификации для IBM Matmal Transmula TRANslating System», которые положили начало термину FORTRAN. Затем потребовалось еще два года усилий целой команды, которую он возглавил, для написания первого компилятора языка программирования Fortran (25 000 строк для IBM 704).

Название языка первоначально прописывалось заглавными буквами FORTRAN и использовалось для обозначения языковых версий вплоть до Fortran 77, в отличие от бесплатных версий синтаксиса, начиная с Fortran 90. В стандарте Fortran 77 строчные буквы не являются частью языка, но большинство компиляторов поддерживают их, в дополнение к стандарту.

Сегодня язык программирования Fortran является доминирующим в программировании, используемом в инженерных приложениях. Поэтому важно, чтобы инженеры-выпускники могли читать и изменять код Fortran. Время от времени, так называемые эксперты, прогнозируют, что язык потеряет свою популярность и скоро перестанет использоваться вообще.

Эти прогнозы всегда терпели неудачу. "Фортран" - самый устойчивый компьютерный язык программирования в истории. Одна из основных причин, по которой язык программирования Fortran выжил и выживет - это инерция программного обеспечения. После того, как компания потратила много ресурсов и, возможно, миллионы долларов на программный продукт, вряд ли она будет переводить программное обеспечение на другой язык.

Основным преимуществом Fortran является то, что он стандартизован международными органами ANSI и ISO. Следовательно, если программа написана в ANSI, то она будет запущена на любом компьютере с компилятором Fortran 77. Это важная информация. Таким образом, программы объектно ориентированного языка программирования Fortran существуют на разных программных устройствах.

Этапы создания языковой платформы:

  1. В 1954-1957 годах первый компилятор был разработан с нуля. В те времена не было «языков высокого уровня» (= HLL), большинство операционных систем были простыми, а память была небольшой, что-то около 16 Kb. Первый компилятор работал на IBM 704. Этот язык HLL был намного более эффективным, чем программирование на ассемблере, и очень популярным в свое время.
  2. В 1958 году издан ФОРТРАН II. В том же году был разработан FORTRAN III, но так и не выпущен в широкое производство.
  3. В 1961 году был создан FORTRAN IV. Он содержал улучшения, такие как реализация операторов COMMON и EQUIVALENCE.
  4. В 1962 году комитет ASA начал разработку стандарта для объектно ориентированного языка программирования Fortran. Это позволило продавцу использовать его в каждом новом компьютере. И этот факт сделал его еще более популярным HLL, язык стал доступен в системах Apple и TRS80.
  5. В 1967 году был выпущен FORTRAN 66, первый в мире стандарт HLL. Публикация стандарта означала, что язык стал более широко реализованным, чем любой другой. К середине 1970-х годов практически каждый компьютер, мини или мэйнфрейм был снабжен стандартным языком FORTRAN 66. Язык использовал утверждение if, goto-statement и spagethi-программы. Такое структурированное программирование стало популярным в 60-70-х годах.
  6. "Фортран" существовал на перфокартах в частности, с системой FMS, оптимизируя расположение своих источников до тех пор, пока Fortran 90 не ввел «свободный» синтаксис. В нем код массива Fortran начинается с 7-го столбца и не должен превышать 72 тыс. знаков.

Следует также отметить, что до Fortran 90 пробелы не имели значения между 7-м и 72-м столбцом. Таким образом, цикл «DO I = 1.5» также может быть записан «DOI = 1,5». С другой стороны, «DO I = 1,5» эквивалентно «DOI = 1.5».

Многочисленные промышленные коды были написаны в Nastran, NAG и IMSL- Fortran библиотеке. Совместимость новых версий с предыдущими важна. По этой причине Fortran 90 полностью совместим с Fortran 77. Однако в следующих версиях стандарта уже были введены несовместимости.

Вскоре последовали более совершенные языки Fortran 90 и Fortran 95, обновленные до текущего стандарта Fortran-2003. При том, что современные компиляторы работают неограниченно во всех текущих версиях Windows и даже поддерживают 64-разрядные процессоры. Между тем, производители признали тенденцию времени и предлагают компиляторы для Linux в виде объектно ориентированного языка программирования Actor Fortran.

Предпосылки использования языка программирования

Нужно понимать, что Fortran по-прежнему является широко используемым языком программирования и в основном применяется в области открытий. Классические области применения, например, в физике или технике, где выполняются обширные и сложные математические вычисления. В них очень полезны обширные математические библиотеки, которые существуют для разных компиляторов. Подведя итог, можно утверждать, что сегодня язык Fortran по-прежнему используется по ряду причин:

  • Наличие многочисленных функциональных библиотек, разрабатываемых на протяжении многих лет.
  • Наличие программного обеспечения в "Фортране", которое требует очень важных ресурсов для развития, когда переход на другой язык считается слишком дорогостоящим.
  • Наличие мощных компиляторов со встроенными функциями Fortran, которые производят очень быстрые исполняемые файлы.
  • Язык более доступен для изобретателя, у которого не было специализированного компьютерного курса.

Многие научные программы теперь написаны на языках C и C ++, компиляторы которых доступны на большинстве машин. Другие скомпилированные языки иногда используются для научных вычислений, и особенно для таких программ, как Scilab или Matlab. Последние также включают библиотеки BLAS и LAPACK, разработанные в программировании Fortran. Matlab изначально была программой в Fortran, распространяемой в университетах и исследовательских центрах.

Хотя Tom Lahey теперь является «единственным» генеральным компилятором, Lahey Computer Systems продолжает использоваться многими программистами. Lahey уже несколько лет работает с Fujitsu, Lahey концентрируется на синтаксическом анализаторе Fortran, а Fujitsu - на генераторе кода. Текущий Compiler Suite для Windows называется Lahey Fujitsu Fortran 95 (LF95) и доступен в различных версиях, некоторые из которых также интегрируются с Visual Studio .NET 2003.

Существует также недорогая версия LF95 Express без собственной IDE. Текущая версия - 7.1. в Linux вызывается компилятором Lahey / Fujitsu Fortran 95 v6.2 для Linux и доступна в двух разных версиях. Например, версия Pro включает совместимость с OpenMP v2.0, простой графический движок Winteracter Starter Kit, математическую библиотеку и научную библиотеку подпрограмм Fujitsu 2.

Другим производителем является Absoft. Компиляторы и C ++ существуют не только для Windows и Linux, но также и для OS X на Macintosh. Эти компиляторы интересны разработчикам, которые нуждаются или хотят поддерживать все три платформы. К сожалению, Absoft различает 32- и 64-разрядные версии под Linux, в настоящее время используется версия 10.0 Fortran 95 для 64-разрядной Linux.

Относительно новым для рынка является пакет EKOPath Compiler Suite. Это состоит из компиляторов C ++ и среды разработки Fortran для Linux, которые также доступны отдельно и в основном предназначены для 64-разрядных AMDusers. Он также работает на Intel EM64T. Также Microsoft однажды попыталась найти «дешевый рынок» Fortran и вывела на рынок Microsoft Powerstation.

Возможно, рынок был слишком мал для софтверного гиганта, но Digital занял часть кода в 1997 году и использовал свой опыт работы с компиляторами Digital Unix и OpenVMS. Это было рождение еще очень успешного Digital Visual Fortran. В какой-то момент Digital затем перешел в Compaq, компилятор был доработан до текущей версии Compaq Visual Fortran (CVF) v6.6.

В дополнение к «нормальным» 32-разрядным платформам существуют различные 64-битные компиляторы, например, для Intel Itanium и Intel EM64T. Хотя они не являются «неотложными» для объема поставки, они доступны для бесплатной загрузки через веб-систему поддержки Intel Premier.

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

Программа Fortran представляет собой последовательность строк текста. Текст должен следовать определенному синтаксису. Например: круг радиуса r, площадью c.

Эта программа считывает реальный радиус и определяет площадь круга с радиусом r:

"Радиус r:"read (*, *) r;

area = 3.14159 * r * r;

write (*, *) "Area =";

Линии, начинающиеся с «C», являются комментариями и не имеют никакой цели, кроме как сделать программу более читаемой для людей. Первоначально все программы Fortran были написаны в прописных буквах. Большинство программистов теперь пишут нижний регистр, так как это более разборчиво.

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

  • название программы;
  • декларации;
  • заявления;
  • стоп;
  • конец.

Выделенные курсивом не должны восприниматься как буквальный текст, а скорее, как общее описание. Оператор остановки является необязательным и может казаться излишним, так как программа остановится, когда она достигнет конца в любом случае, но рекомендуется всегда завершать программу с помощью оператора остановки, чтобы подчеркнуть, что поток выполнения прекращается.

Правила позиции столбца

Fortran 77 не является языком свободного формата, но имеет очень строгий набор правил для форматирования исходного кода. Наиболее важными правилами являются правила расположения столбцов:

  • Col. 1: Blank или «c» или «*» для комментариев.
  • Col. 2-5: метка оператора.
  • Col. 6: продолжение предыдущей строки.
  • Col. 7-72: утверждение.
  • Col. 73- 80: Номер последовательности.

Строкой Fortran, начинающейся с буквы «c» или звездочкой в первом столбце, является комментарий. Комментарии могут появляться в любом месте программы. Хорошо написанные, они имеют решающее значение для читаемости программы. Коммерческие коды Fortran часто содержат около 50% комментариев. Также можно столкнуться с программами, которые используют восклицательный знак (!). Это очень нестандартно в Fortran 77, но разрешено в Fortran 90.

Восклицательный знак может появляться в любом месте в строке. Иногда заявление не вписывается в одну строку, тогда можно разбить оператор на две или более строк и использовать знак продолжения в позиции.

  1. C23456789 - это демонстрирует положение столбца.
  2. «C» - следующий оператор проходит две области физических линий.
  3. Area = 3.14159265358979+ * r * r.

Пустые пробелы игнорируются, начиная с "Фортрана 77". Поэтому, если удалить все пробелы в Fortran 77, программа по-прежнему синтаксиально правильная, хотя при этом почти нечитаемая для операторов.

Имена переменных в Fortran состоят из 1-6 символов, выбранных из букв a-z и цифр 0-9. Первым символом должна быть буква. Fortran 90 допускает имена переменных произвольной длины. Fortran 77 не проводит различия между верхним и нижним регистром, на самом деле он предполагает, что все входные данные являются верхним регистром. Тем не менее, почти все компиляторы F 77 будут принимать строчные буквы. Каждая переменная должна быть определена в объявлении. Это устанавливает тип переменной. Наиболее распространенными списками переменных являются:

  • integer;
  • real;
  • double precision;
  • complex;
  • logical;
  • character.

Список переменных должен состоять из имен, разделенных запятыми. Каждая переменная должна быть объявлена ровно один раз. Если переменная не объявлена, F 77 использует набор неявных правил для установления типа. Это означает, что все переменные, начинающиеся с букв «in», являются целыми числами, а все остальные - реальными. Многие старые программы F 77 используют эти неявные правила, но программисты не должны этого делать, так как вероятность ошибок в программе резко возрастает, если они непостоянно объявляют переменные.

Фортран 77 имеет только один тип для целочисленных переменных. Целые числа обычно хранятся в виде 32-битных (4 байта) переменных. Поэтому все целочисленные переменные должны принимать значения в диапазоне [-m, m], где m составляет приблизительно 2 * 10 9.

F 77 имеет два разных типа для переменных с плавающей запятой, называемых реальной двойной точностью. Некоторые численные вычисления требуют очень высокой точности, и следует использовать двойную точность. Обычно реальная - 4-байтовая переменная, а двойная точность - 8 байтов, но это зависит от машины.

Нестандартные версии "Фортран" используют синтаксис real * 8 для обозначения 8-байтовых переменных с плавающей запятой. Некоторые константы появляются много раз в программе. Поэтому желательно определить их только один раз, в начале программы. Для этого используется оператор параметра. Это также делает программы более читаемыми. Например, программа площади круга должна быть написана так.

Синтаксис оператора параметра (name = constant, ..., name = constant). Правила для оператора параметров:

  1. «Переменная», определенная в инструкции параметра, не является переменной, а константой, значение которой никогда не может измениться.
  2. «Переменная» может отображать не более одного оператора параметра.
  3. Параметр оператор должен прийти до первого исполняемого оператора

Некоторые веские причины использовать параметр - помогает уменьшить количество опечаток, легко изменить константу, которая появляется много раз в программе.

Логические выражения могут иметь только значение.TRUE. или.FALSE. и могут быть сформированы путем сравнения с использованием реляционных операторов.

Нельзя использовать символы, такие как «<» или «=» для сравнения в F 77, но можно использовать правильную двухбуквенную аббревиатуру, заключенную точками. Однако такие символы разрешены в Fortran 90.

Логические выражения могут быть объединены логическими операторами «AND», «OR», « NOT», которые имеют очевидное значение. Значения истины могут храниться в логических переменных. Назначение аналогично арифметическому назначению.

Пример: logical a, ba = .TRUE.b = a .AND. 3 .LT. 5/2

Порядок приоритетности очень важен. Правило состоит в том, что сначала вычисляются арифметические выражения, затем реляционные операторы и, наконец, логические операторы. Следовательно, b будет присвоено.FALSE. В приведенном выше примере логические переменные редко используются в Fortran, но они часто используются в условных операторах, таких как оператор «if».

Константа и назначение

Простейшая форма выражения является константой. Существует 6 типов констант, соответствующих 6 типам данных. Вот некоторые целочисленные константы:10-10032767+15

Вещественные константы:1,0-0,252.0E63.333E-1.

E-нотация означает, что нужно умножить константу на 10, поднятую до мощности, следующей за «E». Следовательно, 2.0E6 составляет два миллиона, а 3,333E-1 составляет примерно одну треть для констант, которые больше, чем наибольшее реальное допустимое, или которое требует высокой точности, следует использовать двойную точность. Обозначения те же, что и для реальных констант, за исключением того, что «E» заменяется на «D».

Пример:2.0D-11D99.

Здесь 2.0D-1 представляет собой двойную точность с одной пятой, в то время как 1D99 - один, за которым следуют 99 нулей.

Следующий тип - это сложные константы. Они обозначаются парой констант (целых или вещественных), разделенных запятой и заключенных в скобки.

Примерами являются:(2, -3)(1,9,9Е-1). Первое число обозначает действительную часть, а второе - мнимую часть.

Пятый тип - это логические константы. Они могут иметь только одно из двух значений:

Обращают внимание, что точки, содержащие буквы, обязательны к написанию.

Последний тип - это символьные константы. Они чаще всего используются в виде массива символов, называемых строкой. Они состоят из произвольной последовательности символов, заключенных в апострофы (одинарные кавычки):

"Anything goes!"

"It is a nice day"

Строковые и символьные константы чувствительны к регистру. Проблема возникает, если нужно иметь реальный апостроф в самой строке. В этом случае нужно удвоить апостроф: "It""s a nice day", что означает "Какой чудесный день"

Важными компонентами любого языка программирования являются условные утверждения. Наиболее распространенным из таких утверждений в Fortran является оператор «if», который фактически имеет несколько форм.

Самый простой - это логическое выражение «if» в Fortran описании: if (logical expression) executable statement.

Это должно быть написано на одной строке, например, при определении абсолютного значения x:

if (x .LT. 0) x = -x

Если в «if» должно быть выполнено более одного оператора, тогда следует использовать следующий синтаксис: if (logical expression) thenstatementsendif.

Поток выполнения сверху вниз. Условные выражения оцениваются последовательно, пока не будет найдено истинное значение. Затем выполняется соответствующий код, и элемент управления переходит к следующему оператору после end «if».

Операторы if могут быть вложены в несколько уровней. Чтобы обеспечить читаемость, важно использовать правильный отступ. Вот пример:

if (x .GT. 0) thenif (x .GE. y) thenwrite(*,*) "x is positive and x >= y"elsewrite(*,*) "x is positive but x< y"endifelseif (x .LT. 0) thenwrite(*,*) "x is negative"elsewrite(*,*) "x is zero"endif

Программисты должны избегать вложенности многих уровней утверждений «if», поскольку ему будет трудно следовать.

Можно использовать любую рабочую станцию Unix с компилятором F 77. Опытные программисты рекомендуют использовать либо Sun, либо Dec.

Программа Fortran состоит из простого текста, который следует определенным правилам синтаксиса. Это называется исходным кодом. Программисты используют редактор для записи исходного кода. Наиболее распространенными редакторами в Unix являются emacs и vi, но они могут быть немного сложными для начинающих пользователей. Можно использовать более простой редактор, например, xedit, который работает под X-окнами.

После того, как написана программа Fortran, ее сохраняют в файле с расширением «.f» или «.for» и переводят программу в машиночитаемую форму. Это делается с помощью специальной программы, называемой компилятором. Компилятор Fortran 77 обычно называют f77. Результату компиляции дается несколько загадочное имя «a.out» по умолчанию, но можно выбрать другое имя, если потребуется. Чтобы запустить программу, просто вводят имя исполняемого файла, например, « a.out». Компилятор переводит исходный код в объектный код, а компоновщик или загрузчик - в исполняемый файл. Как видно, эта процедура совершенно не сложная и доступна любому пользователю.

Моделирование является одним из наиболее часто используемых методов производства и других систем, имеющихся на современных предприятиях. Большинство имитационных моделей построены с использованием объектно ориентированного языка программирования Actor Fortran, или пакета программного обеспечения для моделирования, написанного на традиционном языке. Эти инструменты имеют свои ограничения. Объектно-ориентированная технология проявляла все большее применение во многих областях и обещает более гибкий и эффективный подход к моделированию бизнес-систем.

Программирования Simula Fortran сравниваются с обычным научным языком программирования под названием FORTRAN. Типичная военная имитационная модель запрограммирована как в SIMULA, так и в FORTRAN. Программа SIMULA оказалась на 24% короче, чем версия FORTRAN.

Версия SIMULA также более проста и дает лучшую картину моделируемой модели. С другой стороны, время выполнения для производственных тиражей на 64% больше с объектно ориентированным языком программирования Simula Fortran. Взвешивание плюсов и минусов показывает, что SIMULA будет все более прибыльным ПО, с более высокими расходами на персонал и более низкими затратами на компьютер.

CUDA показывает, как высокопроизводительные разработчики приложений могут использовать возможности графических процессоров с использованием Fortran, привычного языка для научных вычислений и тестирования производительности суперкомпьютеров. Авторы не предполагают никакого предшествующего опыта параллельных вычислений и охватывают только основы, а также используют лучшие практики. Эффективность вычисления графических процессоров с использованием CUDA Fortran обеспечивается целевой архитектуры графического процессора.

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

Возможно, когда-то глобальная корпорация «окончательно глобализуется» и решит, что "Фортран" больше не нужен, однако, не теперь. Благодаря нынешним возможностям современного Fortran, многие программисты и ученые видят за ним будущее. Кроме того, в мире достаточно производителей, которые живут за счет разработки современных компиляторов и неплохо зарабатывают на этом процессе.

Впервые я услышал о Фортране в раннем детстве от отца. Он рассказывал, что в 70-х годах ему приходилось часами выстаивать очереди к едва ли не единственной ЭВМ в ВУЗе, дабы используя перфокарту запустить примитивный код. Признаюсь честно, с тех пор и до недавнего времени (несмотря на полученное техническое образование) я пребывал в полной уверенности, что Фортран остался где-то далеко там, в мире, где носителями информации выступают странные картонки с дырками, а компьютеры стоят так дорого, что воспринимаются, как настоящий аттракцион.

Каково же было моё удивление, когда я узнал, что Фортран не просто ещё где-то используется, он развивается, востребован и по-прежнему актуален. Если вы также до этого момента полагали, что Фортран давно носит статус мертвеца, то вот вам несколько интересных фактов, почему он ещё ходит.

Пережил минимум 10 обновлений

В действительности, тот Фортран о котором вы слышите от преподавателей в школе или университете был создан в период с 1954 по 1957 года. Он вошёл в историю, как первый полностью реализованный язык высокого уровня, совершил маленький прорыв в IT-мире, но по сути был не слишком удобен и функционален. “Допиливать” его в IBM принялись практически сразу, уже в 1958 году появился FORTRAN II и параллельно FORTRAN III. Но более-менее приличный вид он приобрёл лишь в 70-х, когда появились достаточно портативные машины, когда был разработан полноценный стандарт IBM FORTRAN IV, и появился FORTRAN 66 с циклами, метками, условными операторами, командами ввода/вывода и прочими по современным меркам примитивными возможностями.

Последняя версия появилась в 2010 году, её название Fortran 2008 (как видите, в ходе истории, название перестало писаться исключительно заглавными буквами), отличительной чертой которой являются всевозможные параллельные вычисления, положительно сказывающиеся, как на скорости обработки данных, так и на размерности обрабатываемых массивов. Кроме того, на 2018 год запланирован выход Fortran 2015. Из анонса следует, что в нём будет улучшена интеграция с С, а также устранены текущие недоработки.

Входит в 30 самых популярных языков программирования

На сегодняшний день 0,743% запросов в поисковых системах относительно языков программирования посвящену именно Фортрану. Чтобы вы поняли, насколько это круто, просто представьте, что такие языки, как Lisp, Scala, Clojure, LabVIEW, Haskell, Rust и VHDL, находятся в рейтинге ниже.

Может работать на Android (и не только)

Компиляторы для Фортана за его долгую историю разрабатывались такими компаниями, как IBM, Microsoft, Compaq, HP, Oracle, благодаря чему сегодня язык совместим с Windows, Mac OS и Linux. Более того, удобное приложение с компилятором теперь можно взять с собой, благодаря приложению CCTools для Android. Можно запустить компилятор и на вашем iPhone, но в этом случае немного поколдовать.

Конкурирует с MATLAB

Пока в этом тексте не было сказано главного, а именно области применения Фортрана. Так вот это язык, востребованный в науке и инженерии, полностью или частично применяемый для прогноза погоды, океанографии, молекулярной динамики, сейсмологического анализа. В общем, это самый настоящий “Data Science”-язык родом из времени, когда в массовую продажу впервые поступил калькулятор.

При этом стоит признать, что частично своей популярностью Фортран обязан наследию. За долгие годы практически без конкуренции язык оброс огромной базой клиентов, библиотек и надстроек. Кроме того, каждая следующая версия Фортрана неизбежно поддерживает предыдущие. Поэтому сложилась ситуация, когда отсутствуют какие-либо существенные факторы, для того, чтобы учёные и инженеры вынуждены были отказаться от этого союза.

По сути, главным конкурентом Фортрана на сегодняшний день является MATLAB, который более универсален, более функционален и удобен. Однако MATLAB при этом имеет строгие ограничения по используемому ПО, достаточно дорого стоит и в большинстве случаев просто излишен.

Имеет относительно безоблачное будущее

Безусловно, мы не можем предсказать, что будет через 10-20 лет, и как за это время изменится IT-мир. Однако, если посмотреть на возможных новых конкурентов для Фортрана (таких, как Go), их главный недостаток - универсализация. То есть создатели Fortran очень быстро наметили целевую аудиторию в виде учёных, их мнение и пожелания имеют приоритетное значение. Поэтому трудно представить, что завтра они откажутся от своего “спецзаказа” ради какой-то модной тенденции. Именно на основании этого можно утверждать, что ещё одно поколение Фортран отходит смело.

А потом они просто выпустят новую версию.