Дайте характеристику и назначение языка fortran. Первые языки программирования высокого уровня. На языке фортран

Дайте характеристику и назначение языка fortran. Первые языки программирования высокого уровня. На языке фортран

02.04.2019

Язык программирования 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, многие программисты и ученые видят за ним будущее. Кроме того, в мире достаточно производителей, которые живут за счет разработки современных компиляторов и неплохо зарабатывают на этом процессе.

  • Перевод
Не знаю, как будет выглядеть язык программирования в 2000-м году, но я знаю, что называться он будет FORTRAN.
- Чарльз Энтони Ричард Хоар, ок. 1982

В индустрии Fortran сегодня используется редко – в одном из списков популярных языков он оказался на 28-м месте . Но Fortran всё ещё главный язык для крупномасштабных симуляций физических систем – то есть для таких вещей, как астрофизическое моделирование звёзд и галактик (напр. Flash), крупномасштабной молекулярной динамики, коды подсчёта электронных структур (SIESTA), климатические модели, и т.п. В области высокопроизводительных вычислений, подмножеством которых являются крупномасштабные числовые симуляции, сегодня используются лишь два языка – C/C++ и «современный Fortran» (Fortran 90/95/03/08). Популярные библиотеки Open MPI для распараллеливания кода были разработаны для двух этих языков. В общем, если вам нужен быстрый код, работающий на нескольких процессорах, у вас есть только два варианта. В современном Fortran есть такая особенность, как "coarray ", позволяющая прямо в языке работать с параллельным программированием. Coarray появились в расширении Fortran 95, а затем были включены в Fortran 2008.

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

Я хотел бы объяснить, почему Fortran всё ещё остаётся полезным. Я не призываю изучающих физику студентов учить Fortran – поскольку большинство из них будут заниматься исследованиями, им лучше заняться изучением C/C++ (или остановиться на Matlab/Octave/Python). Я хотел бы пояснить, почему Fortran всё ещё используется, и доказать, что это не только из-за того, что физики «отстают от моды» (хотя иногда это так и есть – в прошлом году я видел студента-физика, работавшего с кодом Fortran 77, при этом ни он, ни его руководитель ничего не слышали про Fortran 90). Специалисты по информатике должны рассматривать преобладание Fortran в числовых вычислениях как вызов.

Перед тем, как углубиться в тему, я хочу обсудить историю, поскольку, когда люди слышат слово «Fortran», они сразу представляют себе перфокарты и код с пронумерованными строками. Первая спецификация Fortran была написана в 1954 году. Ранний Fortran (тогда его название писалось заглавными буквами, FORTRAN), был, по современным меркам, адским языком, но это был невероятный шаг вперёд от предыдущего программирования на ассемблере. На FORTRAN часто программировали при помощи перфокарт, как об этом без удовольствия вспоминает профессор Мириам Форман из университета Стони Брук. У Fortran было много версий, самые известные из которых – стандарты 66, 77, 90, 95, 03 и 08.

Часто говорят, что Fortran до сих пор используют из-за его скорости. Но самый ли он быстрый? На сайте benchmarksgame.alioth.debian.org есть сравнение C и Fortran в нескольких тестах среди многих языков. В большинстве случаев Fortran и C/C++ оказываются самыми быстрыми. Любимый программистами Python часто отстаёт в скорости в 100 раз, но это в порядке вещей для интерпретируемого кода. Python не подходит для сложных числовых вычислений, но хорошо подходит для другого. Что интересно, C/C++ выигрывает у Fortran во всех тестах, кроме двух, хотя в целом по результатам они мало отличаются. Тесты, где Fortran выигрывает, наиболее «физические» – это симуляция системы из n тел и расчёт спектра. Результаты зависят от количества ядер процессора, например, Fortran немного отстаёт от C/C++ на четырёхъядерном. Тесты, в которых Fortran сильно отстаёт от C/C++, большую часть времени занимаются чтением и записью данных, и в этом отношении медлительность Fortran известна.

Так что, C/C++ настолько же быстрый, насколько Fortran, а иногда и немного быстрее. Нас интересует, «почему профессора физики продолжают советовать своим студентам использовать Fortran вместо C/C++?»

У Fortran есть унаследованный код

Благодаря долгой истории Fortran, неудивительно, что на нём написаны горы кода по физике. Физики стараются минимизировать время на программирование, поэтому, если они найдут более ранний код, они будут его использовать. Даже если старый код неудобочитаемый, плохо документированный и не самый эффективный, чаще использовать старый проверенный, чем писать новый. Задача физиков – не писать код, они пытаются понять природу реальности. У профессоров унаследованный код всегда под рукой (часто этот код они сами и писали десятилетия назад), и они передают его своим студентам. Это сохраняет их время и удаляет неопределённости из процесса устранения ошибок.

Студентам-физикам изучать Fortran легче, чем C/C++

Я думаю, что изучать Fortran легче, чем C/C++. Fortran 90 и C очень похожи, но на Fortran писать проще. C – язык сравнительно примитивный, поэтому физики, избирающие себе C/C++, занимаются объектно-ориентированным программированием. ООП может быть полезным, особенно в крупных программных проектах, но изучать его гораздо дольше. Нужно изучать такие абстракции, как классы и наследование. Парадигма ООП очень отличается от процедурной, используемой в Fortran. Fortran основан на простейшей процедурной парадигме, более приближенной к тому, что происходит у компьютера «под капотом». Когда вы оптимизируете/векторизуете код для увеличения скорости, с процедурной парадигмой легче работать. Физики обычно понимают, как работают компьютеры, и мыслят в терминах физических процессов, например, передачи данных с диска в RAM, а из RAM в кэш процессора. Они отличаются от математиков, предпочитающих размышлять в терминах абстрактных функций и логики. Также это мышление отличается от объектно-ориентированного. Оптимизация ООП-кода более сложна с моей точки зрения, чем процедурного. Объекты – очень громоздкие структуры по сравнению со структурами данных, предпочитаемыми физиками: массивами.

Лёгкость первая: работа Fortran с массивами

Массивы, или, как их зовут физики, матрицы, находятся в сердце всех физических вычислений. В Fortran 90+ можно найти много возможностей для работы с ними, схожих с APL и Matlab/Octave. Массивы можно копировать, умножать на скаляр, перемножать между собой очень интуитивным образом:

A = B A = 3.24*B C = A*B B = exp(A) norm = sqrt(sum(A**2))
Здесь, A, B, C – массивы некоторой размерности (допустим, 10x10x10). C = A*B даёт нам поэлементное перемножение матриц, если A и B одного размера. Для матричного умножения используется C = matmul(A,B). Почти все внутренние функции Fortran (Sin(), Exp(), Abs(), Floor(), и т.д.) принимают массивы в качестве аргументов, что приводит к простому и чистому коду. Похожего кода в C/C++ просто нет. В базовой реализации C/C++ простое копирование массива требует прогона for циклов по всем элементам или вызова библиотечной функции. Если скормить массив не той библиотечной функции в С, произойдёт ошибка. Необходимость использования библиотек вместо внутренних функций означает, что итоговый код не будет чистым и переносимым, или лёгким в изучении.

В Fortran доступ к элементам массива работает через простой синтаксис A, когда в C/C++ нужно писать A[x][y][z]. Элементы массивов начинаются с 1, что соответствует представлениям физиков о матрицах, а в массивах C/C++ нумерация начинается с нуля. Вот ещё несколько функций для работы с массивами в Fortran.

A = (/ i , i = 1,100 /) B = A(1:100:10) C(10:) = B
Сначала создаётся вектор A через подразумеваемый цикл do, также известный, как конструктор массивов. Затем создаётся вектор B, состоящий из каждого 10-го элемента А, при помощи шага в 10. И, наконец, массив B копируется в массив С, начиная с 10-го элемента. Fortran поддерживает объявления массивов с нулевыми или отрицательными индексами:

Double precision, dimension(-1:10) :: myArray
Отрицательный индекс сначала выглядит глупо, но я слышал об их полезности – например, представьте, что это дополнительная область для размещения каких-либо пояснений. Fortran также поддерживает векторные индексы . Например, можно передать элементы 1,5 и 7 из массива A размерностью N x 1 в массив B размерностью 3 x 1:

Subscripts = (/ 1, 5, 7 /) B = A(subscripts)
Fortran поддерживает маски массивов во всех внутренних функциях. К примеру, если нам нужно посчитать логарифм всех элементов матрицы, больших нуля, мы используем:

Log_of_A = log(A, mask= A .gt. 0)
Или мы можем в одну строку обнулить все отрицательные элементы массива:

Where(my_array .lt. 0.0) my_array = 0.0
В Fortran легко динамически размещать и освобождать массивы. К примеру, для размещения двумерного массива:

Real, dimension(:,:), allocatable:: name_of_array allocate(name_of_array(xdim, ydim))
В C/C++ для этого требуется следующая запись :

Int **array; array = malloc(nrows * sizeof(double *)); for(i = 0; i < nrows; i++){ array[i] = malloc(ncolumns * sizeof(double)); }
Для освобождения массива в Fortran

Deallocate(name_of_array)
В C/C++ для этого

For(i = 0; i < nrows; i++){ free(array[i]); } free(array);

Лёгкость вторая: не нужно беспокоиться об указателях и выделении памяти

В языках вроде C/C++ все переменные передаются по значению, за исключением массивов, передающихся по ссылке. Но во многих случаях передача массива по значению имеет больше смысла. Например, пусть данные состоят из позиций 100 молекул в разные периоды времени. Нам необходимо анализировать движение одной молекулы. Мы берём срез массива (подмассив) соответствующий координатам атомов в этой молекуле и передаём его в функцию. В ней мы будем заниматься сложным анализом переданного подмассива. Если бы мы передавали его по ссылке, переданные данные не располагались бы в памяти подряд. Из-за особенностей доступа к памяти работа с таким массивом была бы медленной. Если же мы передадим его по значению, мы создадим в памяти новый массив, расположенный подряд. К радости физиков, компилятор берёт на себя всю грязную работу по оптимизации памяти.

В Fortran переменные обычно передаются по ссылке, а не по значению. Под капотом компилятор Fortran автоматически оптимизирует их передачу для повышения эффективности. С точки зрения профессора в области оптимизации использования памяти компилятору стоит доверять больше, чем студенту! В результате физики редко используют указатели, хотя в Fortran-90+ они есть .

Ещё несколько примеров отличий Fortran и C

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

Double precision, parameter:: hbar = 6.63e-34
Если параметр в коде меняется, компилятор возвращает ошибку. В С это называется const

Double const hbar = 6.63e-34
Проблема в том, что const real отличается от простого real. Если функция, принимающая real, получит const real, она вернёт ошибку. Легко представить, как это может привести к проблемам функциональной совместимости в коде.

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

В Fortran есть и другие особенности, используемые с разной частотой. К примеру, в Fortran 95 есть возможность объявлять функции с модификатором pure [чистый]. У такой функции нет побочных эффектов – она меняет только свои аргументы, и не меняет глобальные переменные. Особым случаем такой функции служит функция elemental, которая принимает и возвращает скаляры. Она используется для обработки элементов массива. Информация о том, что функция pure или elemental, позволяет компилятору проводить дополнительную оптимизацию, особенно при распараллеливании кода.

Чего ждать в будущем?

В научных подсчётах Fortran остаётся основным языком, и в ближайшее время исчезать не собирается. На опросе среди использующих этот язык посетителей конференции «2014 Supercomputing Convention» 100% из них сказали, что собираются использовать его в ближайшие 5 лет. Из опроса также следует, что 90% использовали смесь из Fortran и C. Предвидя увеличение смешивания этих языков, создатели спецификации Fortran 2015 включают в неё больше возможностей для функциональной совместимости кода. Код Fortran всё чаще вызывается из кода на Python. Специалисты по информатике, критикующие использование Fortran, не понимают, что этот язык остаётся уникально приспособленным для того, в честь чего он был назван - FOrmula TRANslation, перевода формул, то есть, преобразования физических формул в код. Многие из них не догадываются, что язык развивается и постоянно включает всё новые возможности.

Называть современный Fortran 90+ старым, это всё равно, что называть старым C++, из-за того, что C разработали в 1973. С другой стороны, даже в самом новом стандарте Fortran 2008 существует обратная совместимость с Fortran 77 и большей частью Fortran 66. Поэтому разработка языка сопряжена с определёнными трудностями. Недавно исследователи из MIT решили преодолеть эти трудности, разработав с нуля язык для HPC по имени Julia , впервые вышедший в 2012 году. Займет ли Julia место Fortran, ещё предстоит увидеть. В любом случае, подозреваю, что это будет происходить очень долго.

Теги:

  • 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 является аббревиатурой от FOR mula TRAN slator, то есть, переводчик формул. Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана - большое количество написанных на нём программ и библиотек подпрограмм (см., например, Netlib Repository). Среди учёных, например, ходит такая присказка, что любая математическая задача уже имеет решение на Фортране, и, действительно, можно найти среди тысяч фортрановских пакетов и пакет для перемножения , и пакет для решения сложных интегральных уравнений и многие, многие другие. Ряд таких пакетов создавались на протяжении десятилетий и популярны (главным образом в научной среде) по сей день.

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

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

Стандарты

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

  • FORTRAN IV (он же - FORTRAN 66 ) (1966)
  • FORTRAN 77 (1978)
    Множество улучшений: текстовый тип данных и функции для его обработки, блочные операторы IF, ELSE IF, ELSE, END IF, оператор включения фрагмента программы INCLUDE и т. д.
  • Fortran 90 (1991)
    Значительно переработан стандарт языка. Введён свободный формат написания кода. Появились дополнтельные описания IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST; управляющие конструкции DO … END DO, DO WHILE, CYCLE, SELECT CASE, WHERE; работа с динамической памятью (ALLOCATE, DEALLOCATE, NULLIFY); программные компоненты MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT. Появились новые встроенные функции, в первую очередь, для работы с массивами.
    В языке появились элементы .
    Отдельно объявлен список устаревших черт языка, предназначенных для удаления в будущем.
  • Fortran 95 (1997)
    Коррекция предыдущего стандарта.
  • Fortran 2003 (2004)
    Дальнейшее развитие поддержки в языке. Взаимодействие с операционной системой.

Компиляторы

Возможности и структура программы

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

Структура программ изначально была ориентирована на ввод с

и имела ряд удобных именно для этого случая свойств. Так, 1-я колонка служила для маркировки текста как комментария (символом C ), со 1-й по 5-ю располагалась область меток, а с 7-й по 72-ю располагался собственно текст оператора или комментария. Колонки с 73-й по 80-ю могли служить для нумерации карт (чтобы восстановить случайно рассыпавшуюся колоду) или для краткого комментария, транслятором они игнорировались. Если текст оператора не вписывался в отведённое пространство (с 7-й по 72-ю колонку), в 6-ой колонке следующей карты ставился признак продолжения, и затем оператор продолжался на ней. Расположить два или более в одной строке (карте) было нельзя. Когда перфокарты ушли в историю, эти достоинства превратились в серьёзные неудобства.

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

Своего рода «визитной карточкой» старого Фортрана является огромное количество меток, которые использовались как в операторах безусловного перехода , так и в операторах циклов, и в операторах описания форматного ввода/вывода FORMAT. Большое количества меток и операторов GOTO часто делало программы на Фортране трудными для понимания.

Именно этот негативный опыт стал причиной, по которой в ряде современных языков программирования (например, ) метки и связанные с ними операторы безусловного перехода вообще отсутствуют.

Однако современный Фортран избавлен от избытка меток за счет введения таких операторов, как DO … END DO, DO WHILE, SELECT CASE

Также к положительным чертам современного Фортрана стоит отнести большое количество встроенных операций с массивами и гибкую поддержку массивов с необычной индексацией. Пример:

Real,dimension(:,:) :: V ... allocate(V(-2:2,0:10)) ! Выделить память под массив, индексы которого могут! меняться в пределах от -2 до 2 (первый индекс) ! и от 0 до 10 - второй... V(2,2:3)=V(-1:0,1) ! Повернуть кусочек массива write(*,*)V(1,:) ! Напечатать все элементы массива V, первый индекс которых равен 1. deallocate(V)

Пример программы

Программа «Hello, World!»

Фиксированный формат (символами «ˆ» выделены пробелы в позициях строки с 1 по 6):

^^^^^^PROGRAM hello ^^^^^^PRINT*, "Hello, World!" ^^^^^^END

Свободный формат:

Program hello print *, "Hello, World!" end

Замечания.

  • Оператор PROGRAM не является обязательным. Строго говоря, единственный обязательный оператор Фортран-программы - оператор END .
  • Выбор прописных или строчных букв для написания операторов программы произволен. С точки зрения современных стандартов языка Фортран множество прописных букв и множество строчных букв при написании операторов языка совпадают.
  • Середина 50-х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных кодах стала уменьшаться, стали появляться языки программировании нового типа, выступающие в роли посредника между машинами и программистами. Наступило время второго и третьего поколений языков программирования

    С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-levellanguage). Эти языки были Машино независимыми (не привязаны к определенному типу ЭВМ).

    Но для каждого языка были разработаны собственные компиляторы - программа, выполняющая компиляцию.

    Компиляция - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера)

    Язык программирования FORTRAN

    Первый язык высокого уровня был создан в период с 1954 по 1957 года группой программистов под руководством Джона Бэкуса в корпорации IBM и это стало следующим этапом развития языков программирования. Это был язык программирования FORTRAN. Он предназначался для научных и технических расчетов. Название Fortran является сокращением от FORmulaTRANslator (переводчик формул).

    История языка

    В конце 1953 Джон Бэкус предложил начать разработку эффективной альтернативы ассемблеру для программирования на ПК IBM 704. Уже к середине 1954 была закончена черновая спецификация языка Fortran. Первое руководство для Fortran появилось в октябре 1956 вместе с первым компилятором, поставленным в апреле 1957. Компилятор был оптимизирующим, потому что клиенты отказывались использовать язык программирования высокого уровня, который был не в состоянии генерировать код с производительностью ниже, чем у ассемблера.

    В то время сообщество относилось скептически к новому способу программирования и не верили в то, что Fortran позволит программировать быстрее и эффективнее. По словам самого Джона Бэкуса большая часть его работы была направлена на то чтобы «быть ленивым». Ему жутко не нравилось писать программы под IBM 701 на ассемблере.

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

    К 1960 году существовали версии Fortran для компьютеров IBM 709, 650, 1620, 7090. Его большая популярность побуждала конкурирующих изготовителей компьютеров создавать компиляторы Fortran для своих компьютеров. Таким образом, уже к 1963 существовало более 40 компиляторов для разных платформ. Именно по этому Fortran считают первым широко используемым языком программирования.

    Фортран в СССР

    Фортран в СССР появился позже, чем на Западе, поскольку поначалу у нас более перспективным языком считался Алгол. Во внедрении Фортрана большую роль сыграло общение советских физиков со своими коллегами из CERN, где в 1960-х годах почти все расчёты велись с использованием программ на Фортране.

    Первый советский компилятор с Фортрана был создан в 1967 г. для машины «Минск-2», однако он не получил большой известности. Широкое внедрение Фортрана началось после создания в 1968 г. компилятора ФОРТРАН-ДУБНА для машины БЭСМ-6. Машины ЕС ЭВМ, появившиеся в 1972 г., уже изначально имели транслятор Фортрана («позаимствованный» с IBM/360 вместе с другим программным обеспечением)

    Современный Фортран. Достоинства языка

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

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

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

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



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows