LINUX.ORG.RU

Fortran: 65 лет с момента выхода первого справочного руководства

 , ,


2

1

В этот день 65 лет назад, 15 октября 1956 года, появилось первое справочное руководство для программирования на языке FORTRAN: «The Fortran Automatic Coding System for the IBM 704».

За 3 года до этого, сотрудник компании IBM Джон Бэкус предложил создать язык программирования, позволяющий записывать команды в более удобной для пользователя форме. В течение 1954-1957 годов Джон Бэкус вместе со своей группой разработали язык, считающийся первым широко используемым языком программирования высокого уровня, и в 1957 году выпустили первый оптимизирующий компилятор для него.

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

Одним из важнейших событий в процессе развития языка стало принятие ANSI решения создать рабочую группу по стандартизации языка, что привело к появлению в 1966 году его первого стандарта FORTRAN 66. Некоторые созданные разработчиками компиляторов расширения к нему вошли в следующий стандарт FORTRAN 77 (в 1978 году), устранив ряд недостатков предыдущего стандарта.

К сожалению, только к началу 1990-х, с большой задержкой, был выпущен следующий стандарт Fortran 90, получивший множество улучшений, учитывающих изменения в используемых методах программирования по сравнению с теми, что были актуальны для 1978 года. Небольшим улучшением этого стандарта стал Fortran 95 (1997), включивший в себя возможности расширения High Performance Fortran для встроенного распараллеливания вычислений.

Последующие стандарты Fortran 2003 (2004), Fortran 2008 (2010), Fortran 2018 (2018) прежде всего добавляли и улучшали поддержку ООП, взаимодействие с языком C, усовершенствование динамического размещения данных в памяти, встроенную поддержку средствами языка параллельных вычислений (Co-Arrays Fortran). Стандарт Fortran 202x находится в разработке и дополнит стандарт Fortran 2018 несколькими расширениями.

На сегодняшний день многие вендоры предлагают свои компиляторы, дополнительные инструменты и математические библиотеки для Fortran:

  • GNU Fortran Compiler (gfortran из набора GCC);

  • LLVM Flang;

  • Intel;

  • NAG;

  • NVIDIA (NVIDIA HPC SDK);

  • HPE / Cray (Cray Compiling Environment (CCE))

  • IBM (IBM XL Fortran);

  • AMD (AMD Optimizing C/C++ Compiler (AOCC) - LLVM based);

  • ARM (Linux user-space Fortran compiler - LLVM based);

  • Absoft;

  • Oracle / Sun;

  • Lahey / Fujitsu;

  • Silverfrost FTN95;

  • NEC (NEC SX-Aurora TSUBASA Compilers, Libraries and Tools).

Популярность языка и его простота использования для научных расчётов позволила Fortran прочно занять свою нишу среди языков, использующихся в области HPC (High Performance Computing) для решения задач астрономии, метеорологии, вычислительной химии, вычислительной гидродинамики и ряда других областей.

(На основе материалов статей https://www.wikipedia.org и других источников)

>>> Подробности

★★★★★

Проверено: Zhbert ()
Ответ на: комментарий от yvv

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

anonymous
()
Ответ на: комментарий от yvv

Вот зачем ты пишешь всякую чушь? Ты хоть отдаленно себе представляешь сколько всего написано на фортране? Кто это переписывать будет?

anonymous
()
Ответ на: комментарий от yvv

Можно подумать, что в фортране нет рисовалок графиков. Глянь, например, plplot. И не надо никаких питонов.

Reset ★★★★★
()
Ответ на: комментарий от yvv

Комитет то как раз даже относительно новые фичи вовсю убирает (forall). Что не освобождает разработчиков компиляторов оставлять совместимость со старыми фичами для большего покрытия рынка.

grem ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Сынок, я вкурсе, на чём нужно считать, и на чём нужно обрабатывать посчитанное для вэба, статей, презентаций. А ты, видимо, не вкурсе, что вэб страница не обязательно должна в интернет смотреть, а может быть для внутреннего пользования (интранет).

yvv ★★☆
()
Ответ на: комментарий от grem

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

anonymous
()
Ответ на: комментарий от anonymous

Это не переписывают. Это выкидывают, и пишут заново. Ибо желающих поддерживать древний код становится всё меньше и меньше.

yvv ★★☆
()
Ответ на: комментарий от yvv

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

anonymous
()
Ответ на: комментарий от Reset

Можно подумать, что в фортране нет рисовалок графиков. Глянь, например, plplot.

Это мазохизм всё.

И не надо никаких питонов.

В питоне есть repl и масса полезнейших библиотек для работы над любыми типами данных, типа pandas, xarray и т.д. Делать всё в фортране не имеет никакого смысла.

yvv ★★☆
()
Ответ на: комментарий от yvv

Я прекрасно имею понятие что такое интранет. Клепать страничку чтобы показать результаты всем пяти людям которые к расчетам допуск имеют - дичь полная.

anonymous
()
Ответ на: комментарий от yvv

И лет тебе не больше тридцати пяти - сорока…

anonymous
()
Ответ на: комментарий от anonymous

Ничего не дичь, а весьма удобный способ сравнить 100500 экспериментов с +10000 графиков в каждом и обсудить с коллегами.

yvv ★★☆
()
Ответ на: комментарий от anonymous

Не тратьте время и нервы на тролля. Бедные ученые 60-х-90х того века, как же они без веб-странички то работали :(.

anonymous
()
Ответ на: комментарий от yvv

Это инструментарий на поиграться, хоть оно все написано на Си и в питон только ручками торчит, всё равно при обработке серьезных данных тормозить будет и в этом случае надо использовать нормальные инструменты.

Reset ★★★★★
()
Ответ на: комментарий от yvv

Ничего не дичь, а весьма удобный способ сравнить 100500 экспериментов с +10000 графиков в каждом и обсудить с коллегами.

Супер удобно!

anonymous
()
Ответ на: комментарий от yvv

Объясню вашу ошибку кратко. В вашей области, аэрокосмической, которая гораздо больше техника, чем наука, устаревание идет очень быстро и я думаю почти целиком. То есть постоянно должны меняться почти все материалы, изделия, методы расчетов итд. Есть области - в той же Химии таких темных углов полно, где многие методы расчетов не меняются очень и очень долго - просто смысла нет. Написано множество готовых решений, никто их переписывать не будет, кода много, код плохо описан, но хорошо работает - зачем его менять? Дурная работа просто ради работы? У многих программ неизвестны авторы, многие уже просто умерли или состарились. Эти программы просто используют - как авторучку или стул. Их просто незачем переписывать и их реально очень много. Я как то с физиками имел беседу - у них говорят такого добра еще больше.

anonymous
()
Ответ на: комментарий от yvv

Ничего не дичь, а весьма удобный способ сравнить 100500 экспериментов с +10000 графиков в каждом и обсудить с коллегами.

Эшо чего нибудь напишите.
Советы весьма полезные …

anonymous
()
Ответ на: комментарий от Reset

О, тут ты ошибаешься. xarray например может работать с весьма большими массивами, поддерживает разбиение на части, распараллеливание, ленивые вычисления и т.д. То, что я могу сделать в командной строке с xarray в пару строк, ты затрахаешься делать на фортране. Да, я вкурсе, что питон тут только обвязка, но меня это мало волнует.

yvv ★★☆
()
Ответ на: комментарий от yvv

Ясно. Вы тролль либо обычное сетевое трепло. К науке отношения точно не имеете.

anonymous
()
Ответ на: комментарий от anonymous

Из твоей пещеры этого может и не видно, но многое из этого чудесного кода, про который ты говоришь уже давно переписано, в том числе на фортране > 90 и на питоне. Попробуй погуглить. И причина для этого таки есть.

yvv ★★☆
()

Watcom забыл, хоть он и покрылся плесенью в плане поддержки стандартов :)

Slackware_user ★★★★★
()
Ответ на: комментарий от anonymous

не поверите, но как минимум часть кодов для аэродинамики написана как раз таки на фортране, при том часть все еще на 77м..

Slackware_user ★★★★★
()
Ответ на: комментарий от anonymous

Угу, сравнил тридцатилетнего (хотя, пожалуй, даже двадцатилетнего) с шестидесятилетним, молодец. И, конечно же, ты в курсе, где, кем и в каких проектах активно используется Пайтон уже дофига лет.

IRASoldier ★★
()
Ответ на: комментарий от yvv

Ничего не дичь, а весьма удобный способ сравнить 100500 экспериментов с +10000 графиков в каждом и обсудить с коллегами.

Да тут не то что без бутылки, а цистерны мало будет …

anonymous
()
Ответ на: комментарий от anonymous

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

Понятно, еще один диванный _и_ксперт…

IRASoldier ★★
()
Ответ на: комментарий от anonymous

В твоем конструкторском бюро стульев имени мастера Гамбса - может быть, а в других местах - клепать страничку такое же по сложности дело, как для тебя миллиметровку к кульману кнопками приделать. А выложить в интранет - ну, примерно как у тебя номер отдела набрать, на такой круглой штуке с дырочками и циферками.

IRASoldier ★★
()
Последнее исправление: IRASoldier (всего исправлений: 1)
Ответ на: комментарий от IRASoldier

Это всего лишь предположение. Я на нем не настаиваю. Причем сделанное исходя из допущения что оппонент - технолог.

anonymous
()
Ответ на: комментарий от Slackware_user

Поверю. Почему нет? Я сделал ряд неверных допущений, но при этом опустил самую очевидную возможность - мой оппонент просто трепло.

anonymous
()
Ответ на: комментарий от yvv

Что тебе без бутылки ничего не понятно. Я почему-то не удивлён совсем.

Ну, тролльте дальше.

anonymous
()
Ответ на: комментарий от GP

Я видел программу на фортране только один раз в универе и меня до сих пор мучают ночные кошмары.

Наверное код был очень плох?

anonymous
()
Ответ на: комментарий от IRASoldier

Ох и клоун же ты. Ты вводные то прочитай. Симуляция ядерного взрыва на фортране. Если она серьезная - тебя распнут за сам факт наличия интранета в отделе. Вместе с руководителем, помощниками и всеми секретчиками. Гвоздями к доске прибьют, как телефон. И как я уже выше писал - правильно сделают. А если ты херню считаешь - зачем тебе симуляция на фортране? Пиши сразу на JS - все равно, пипл хавает.

anonymous
()
Ответ на: комментарий от anonymous

Везде где что либо серьезное с ядерщиной связанное на фортране считается тебе руки вместе с головой оторвут за попытку выставить результаты в интранет. И правильно сделают. А где считают всякую чушь - можно хоть на питоне писать, хоть вообще на JS…

Все делится на ядерщину и всякую чушь? Интересный анонимус)

goingUp ★★★★★
()
Ответ на: комментарий от anonymous

Фортран моего студенчества это Матлаб.

GP
()
Ответ на: комментарий от GP

Да ладно. Ничего там особенно кошмарного, очень простой язык, по крайней мере в том варианте, что ещё на ЕС-1010 юзали. Сейчас уже много чего в новых стандартах завезли, заглядывал лет десять назад в код из любопытства - биологи заказывали нам фронтэнд для своих самописных модулей…

IRASoldier ★★
()
Ответ на: комментарий от anonymous

Чувак, клоун здесь как раз ты, причём анонимный. Ты для себя свою симуляцию посчитал? Так можешь засунуть её себе в попу.

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

yvv ★★☆
()
Ответ на: комментарий от goingUp

Все делится на ядерщину и всякую чушь? Интересный анонимус)

ЛОР, самое место для обсуждения таких тем …
Интересно в этом треде все хохмят?

anonymous
()
Ответ на: комментарий от GP

Счастливчик. Увидел бы ты программу на перфокартах - пошел бы наверное на дворника учиться.

Все таки ты пересиль свой страх и загляни в фортрановский код хотя бы версии Fortran 90 - найдешь для себя много нового и интересного, например ООП:

module shape_mod

type shape
    integer :: color
    logical :: filled
    integer :: x
    integer :: y
contains
    procedure :: initialize
end type shape

type, extends(shape) :: rectangle
        integer :: length
        integer :: width
end type rectangle

type, extends(rectangle) :: square
end type square

contains

subroutine initialize(sh, color, filled, x, y, length, width)
    ! initialize shape objects
    class(shape) :: sh
    integer :: color
    logical :: filled
    integer :: x
    integer :: y
    integer, optional :: length
    integer, optional :: width

    sh%color = color
    sh%filled = filled
    sh%x = x
    sh%y = y
    
    select type (sh)
    type is (shape)
          ! no further initialization required
    class is (rectangle)
        ! rectangle or square specific initializations
        if (present(length))  then
           sh%length = length
        else
           sh%length = 0
        endif
        if (present(width)) then
            sh%width = width
        else
            sh%width = 0
        endif
    class default
      ! give error for unexpected/unsupported type
         stop 'initialize: unexpected type for sh object!'
    end select
    
end subroutine initialize

end module
anonymous
()
Ответ на: комментарий от yvv

Ага, лично начальник по ИБ распнет, за то, что коварно лишил трудоспособности всех его архаровцев, скинув им по интранету байки из секретного ядерного КБ :)

IRASoldier ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.