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 ()

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

Значит их это устраивает.

Между «устраивает» и «ещё терпимо» - целая пропасть.

Задача - иметь инструмент, а не выпендриться непохожестью и инаковостью.

«Узнаю брата Колю!...» Любой программист думает, что он предоставляет САМЫЙ ЛУЧШИЙ ИНСТРУМЕНТ, а не свои ограниченные фантазии о предметной области.

Если ты надел клоунский колпак с бубенчиками

Если Ричард Столлман клоун в колпаке с бубенчикам, ты меня прости, но ты не прав.

ЗЫЖ Я не пытаюсь прикрыться авторитетом Столлмана. Просто, я разделяю его точку зрения. При этом нахожусь с другой стороны зеркала программист - пользователь. И, да, я кое-что понимаю и в программировании.

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

«устраивает» и «ещё терпимо» - целая пропасть

Понимаю. Раз большинство выбрало не то, что хотел бы ты - значит они «терпят», не могли же они по своей воле выбрать то, что не нравится тебе, в самом деле?

но ты не прав

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

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

Раз большинство выбрало не то, что хотел бы ты - значит они «терпят»

Почему ты всё сводишь к «нравится - не нравится». Считаешь, что я не в состоянии объективно рассуждать о ПО?

ты тут же мысленно подменил значение этого выражения на столлманоугодность.

«столламаноугодность» - это не Столлману угодно, это следование неким принципам Свободного ПО. Которые в последнее время корпорации нагло попирают под лозунгами «Open Source». Сейчас RH (IBM) или Google ничем не отличаются от MicroSoft. Возможно даже, что M$ сейчас контролирует львиную долю открытых исходников, являясь самым ПРЕДСТАВИТЕЛЬНЫМ ЧЛЕНОМ OPEN SOURCE. И здесь ключевое слово КОНТРОЛИРУЕТ.

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

Считаешь, что я не в состоянии объективно рассуждать о ПО?

Конечно. Если бы ты рассуждал объективно (по крайней мере, пытался быть объективным), ты бы просто использовал то, что нравится тебе и рассказывал о своем видении его преимуществ тем, кто предпочитает другое - не прибегая к аргументам о «свободе», потому что они не имеют отношения к качеству и функциональности софта как такового.

это не Столлману угодно, это следование неким принципам Свободного ПО

Свободное ПО это то ПО, которое угодно Столлману. Свобода же - это в т.ч. и свобода пользователя выбирать, чем ему больше нравится пользоваться, а не «поставил Линукс - должен стать анархистом/социалистом/… и луддитом».

Которые в последнее время корпорации нагло попирают под лозунгами «Open Source»

  1. А с чего бы это корпорации были обязаны следовать принципам «свободного» ПО? Не обязаны и не следуют. Ты сейчас прямо как религиозный фундаменталист - «светское общество нагло попирает нашу веру».

  2. Open Source выгоден всем. И не нагружен политической антикапиталистической риторикой. MIT, BSD, это всё про коллективную разработку и доступность - примерно как в научном сообществе ты публикуешь доказательства теорем и выводы уравнений. Но в отличие от Free/Libre - никто не орет на тебя «ты обязан всё отдать!», «ты не хочешь отдавать свои разработки - ты враг свободы!».

Хочешь свободы в изводе FSF/GNU/RMS? Сиди в свое удовольствие в своем виртуальном гетто / монастыре, в котор(ое)(ый) сам себя определил, никто не запрещает - только не требуй, чтобы другие себя туда загоняли.

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

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

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

странновато ты понимаешь и свободу

Нормально понимаю, а не в соответствии с последними решениями руководителей ангсоцпартии.

по своему усмотрению пользуются всем чем захотят, а все что они сделали принадлежит им и только им

Именно так.

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

Ты получаешь линукс на определенных условиях

Не-а. Я его получаю просто так. И свободен ставить в систему какое мне угодно ПО. Не нравится - ну, попробуй подать на меня в суд :-)

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

все что они сделали принадлежит им и только им - они же корпорации, им так выгодно

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

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

А с какой стати, ты, проклятый комми, запрещаешь свободным людям выпускать программы под ИХ лицензиями?

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

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

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

Так пусть выпускают - а заодно родят какую-нибудь GPL 3000 Unlimited, прямо запрещающую использовать софт под этой лицензией вместе с софтом, выпущенным под какой-либо другой. И заодно встроят в свой софт какую-нибудь Freedom / Libre DRM, чтобы проверять саму ОС и весь остальной установленный софт на предмет столлманонеугодности и не запускаться в случае обнаружения таковой. И при компиляции исходников в таком окружении пусть ставят метку «только для свободной ОС» и принудительно связывают с библиотеками Freedom / Libre DRM. ТакЪ победятЪ.

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

Заранее поздравляю будущего миллионера - ты наверняка станешь таковым, когда выиграешь процессы у Red Hat, Canonical и Microsoft. Ты только тут отпишись, когда настанет день слушаний в суде - чтобы я попкорном запасся.

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

… когда настанет день слушаний в суде - чтобы я попкорном запасся.

… передачками же

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

Захотят - сделают, не захотят - не сделают. Не твое это дело, комми людям указывать что делать.

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

Что характерно, немолодые уже блогеры «какбэ ойтишнеки/программисты/сетевые писатели букв слов», «мы видели начало рунета» уровня Паркера и Фрицморгенко, которым фортран был не модный еще давно (при этом Кононенко(«Паркер»), «программист года» по версии конкурса вьеб-проектов «Ротор 2000», как бы работал «ведущим программистом» в ParallelGraphics, но никто не видел его «параллельных графических программ», только разные говносайты типа «Идiотъ», а компания Фимозгена вообще про «1С»), так вот блогеры эти «авторитетно» считают что фортран или кобол это что-то из категории «мертвые языки», поэтому регулярно удивляются новостям про фортран и кобол :) При этом Паркер в тележке бомбит от отступов питона и, когда ему кивают на физиков, все еще использующих фортран, просит «не путать фортран с фортом». А Макеренко-Фрицморген на днях заявил в ЖЖ что переподготовка на программиста «булева алгебра — один день, а ООП — три дня». Жизнь в пузыре «трендов». Запальчивая некомпетентность. «Но постойте... как он работал в очистке?» (с)

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

Нет и не нужно, главное, что с массивами можно без плясок с бубном работать, в отличие от языков с «зависимыми типами» :)

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

Костылями приходится пользоваться типа runSTArray и функциями типа writeArray/readArray вместо круглых скобок. Про двумерные массивы вообще молчу, а срезки не упоминаю.

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

Костылями приходится пользоваться

Не пользуйся костылями.

runSTArray

Это не костыль.

Ты про Agda, я надеюсь? Тогда нет никаких проблем в том, чтобы навернуть поверх writeArray/readArray нужный синтаксис со скобками.

Про двумерные массивы вообще молчу

Аналогично.

срезки не упоминаю.

Никаких проблем

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

Это не костыль.

Вообще то костыль.

Тогда нет никаких проблем в том, чтобы навернуть поверх writeArray/readArray нужный синтаксис со скобками.

Зачем мне это делать?

Никаких проблем

Ну так покажи код тогда. Давай для начала метод Гаусса решения СЛАУ.

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

Вообще то костыль.

Только в твоей больной голове.

Зачем мне это делать?

Так ты же на синтаксис жалуешься.

Ну так покажи код тогда. Давай для начала метод Гаусса решения СЛАУ.

Ещё раз, мы про какой язык‐то разговариваем вообще? Agda?

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

И? Код где на «языке с зависимыми типами»? На Си или Фортране я с закрытыми глазами напишу Гаусса.

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

Я про haskell

Ну и какие ты там зависимые типы нашёл, если там нет их полноценной реализации?

Я вообще о существовании этого языка впервые услышал от тебя.

Так о чём мы разговаривали с тобой?

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

Ну и какие ты там зависимые типы нашёл, если там нет их полноценной реализации?

В пропозишенах есть, может есть в расширениях ghc, я не в курсе, суть от этого не меняется.

Так о чём мы разговаривали с тобой?

Ну так код будет или ты решил балабольством «доказать» преимущство своего языка?

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

В пропозишенах есть

Мало ли что там в пропозишенах есть, там вилами по воде писано.

может есть в расширениях ghc

Полноценной реализации — нет.

я не в курсе, суть от этого не меняется.

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

Ну так код будет или ты решил балабольством «доказать» преимущство своего языка?

Зачем мне код показывать, если ты вообще не в теме, м‐м?

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

Полноценной реализации — нет.

Сути это не меняет.

Зачем мне код показывать, если ты вообще не в теме, м‐м?

Зачем ты сюда пришел? Это тема про фортран, вместо преимущества «языка с зависимыми типами» у тебя вышел пук. Засчитываю слив?

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

Сути это не меняет.

Вообще‐то как раз меняет. Потому что иначе я могу рассказывать про «зависимые типы в C++», но даже дураку понятно, что это курам на смех всё.

Зачем ты сюда пришел?

А ты?

Это тема про фортран, вместо преимущества «языка с зависимыми типами» у тебя вышел пук. Засчитываю слив?

Кому ты там слив засчитываешь? Это не ты тут пукал, что лично зависимые типы пробовал, а сам пробовал, кхм, Haskell?

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

А ты?

Чтобы очередного хипстера окунуть в дерьмо, очевидно же. У меня это, кстати, отлично получилось.

Это не ты тут пукал, что лично зависимые типы пробовал, а сам пробовал, кхм, Haskell?

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

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

Чтобы очередного хипстера окунуть в дерьмо, очевидно же. У меня это, кстати, отлично получилось.

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

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

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

Нет, я лично щупал.

(Причём лично щупал, обращаю внимание.)

В ответ на:

Ну и кто тебе такое сказал? Или сам придумал?

В ответ на:

Нет и не нужно, главное, что с массивами можно без плясок с бубном работать, в отличие от языков с «зависимыми типами» :)

Можешь теперь рассказать, что ты не про то говорил.

Так код будет или опять пук?

Зачем мне тебе код показывать, а? Ты же вообще в теме зависимых типов не разбираешься: просто непонимающе посмотришь на код и скажешь: «Ой, а тут всё не как в фортране, немогли как в фортране зделоть».

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

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

Ты за контекстом следишь? Я про массивы в подобных языках, а не про зависимые типы.

Ты же вообще в теме зависимых типов

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

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

Я про массивы в подобных языках, а не про зависимые типы.

Каких подобных? Я тебе про «зависимые типы», а ты мне про Haskell.

Мне зависимые типы не интересны

О чём с тобой разговаривать вообще?

про массивы в подобных языках

Каких подобных?

Ты выше сам косвенно подтвердил, что там все также плохо как и в haskell, поэтому стесняешься показывать код.

Только в твоих больных фантазиях.

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

Каких подобных?

В чисто-функциональных

Только в твоих больных фантазиях.

runSTArray и readArray/writeArray ты подтвердил, значит всё также плохо.

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

В чисто-функциональных

А я говорил про языки с зависимыми типами. Чистых функциональных полно, самых разных.

runSTArray и readArray/writeArray ты подтвердил, значит всё также плохо

Вот тебе валидный код на Lean 4 (где есть настоящие зависимые типы):

example : Nat := do
  let mut arr : Array Nat := #[1, 2, 3]

  for i in arr do
    arr := arr.push i

  let mut idx := 0

  for j in List.range 4 do
    arr := arr.set! j 0

  return arr.get! 0

Какой‐то принципиальной разницы с императивными языками не вижу, Array — настоящий.

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

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

Не идеально, но норм. Физики это не поймут :) Проблема этого кода в том, что когда в одном выражении будет использоваться несколько ячеек массива, то код будет почти нечитабельным.

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

Когда на языках, которые ты притащил, напишут что-то уровня gamess, тогда можешь повопить. А пока, марш на свалку!

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