Впервые я услышал о Фортране в раннем детстве от отца. Он рассказывал, что в 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 очень быстро наметили целевую аудиторию в виде учёных, их мнение и пожелания имеют приоритетное значение. Поэтому трудно представить, что завтра они откажутся от своего “спецзаказа” ради какой-то модной тенденции. Именно на основании этого можно утверждать, что ещё одно поколение Фортран отходит смело.

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

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

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

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

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

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

Языки программирования сверхвысокого уровня – 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, добавить встроенные специальные математические функции и др.

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

Я, как и наверное большинство школьников на просторах нашей необъятной Родины, начинал постигать азы через синий экран, но не смерти, а Turbo Pascal 7.0. Был конечно и Basic, с котором я впервые столкнулся в дошкольном возрасте на советском компьютере «Электроника». Тогда он казался странным текстовым редактором, ведь компьютер глазами ребенка создан для игр. Однако уже в институте я познакомился с языком Fortran, познав который, я до сих пор недоумеваю, почему он не используется для обучения.

Да, многие скажут, что язык мертвый, не соответствует современным реалиям, а учебники с названием, как на картинке, вызывают лишь улыбку. Я попробую объяснить, чем же так замечателен этот язык и почему я его рекомендую в качестве первого языка. Если заинтересовало, добро пожаловать под кат.

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

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

Чем же так замечателен Фортран?

Обратимся к истории создания этого языка. Появился он в далекие 50-е годы прошлого века, когда компьютеры еще были большие, программистов было мало, а информатика не преподавалась в школе, да и вообще считалась лженаукой. Нужен был простой язык, который помогал бы инженерам и ученым «скармливать» ЭВМ формулы, написанные на бумаге, пусть даже через перфокарты.

Отсюда и название самого языка: For mula Tran slator или же «переводчик формул». Т.е. изначально язык был ориентирован на людей без специальной подготовки, а значит должен был быть максимально простым.

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

Program hw write(*,*) "Hello, World!" end
Синтаксис даже чуть проще Паскаля, нет необходимости ставить в конце строки "; " или ": " перед знаком равенства. Более того, людям, обладающих минимальным знанием английского языка, понять смысл простейшей программы не составит труда.

Тут я хочу отметить, что Фортран имеет несколько ревизий стандартов, основными из которых являются 77 и 90 (при этом сохраняется преемственность). 77 Фортран действительно архаичен, есть ограничение на длину строки, и необходимо делать отступ в начале строки, что может вызвать у молодого кандидата в программисты культурный шок. Недаром программы, написанные на 77 Фортране, получили из уст моего знакомого емкое название «Брежневский код». Поэтому весь мой текст относится к стандарту языка 90 и новее.

Для примера, приведу код для вычисления суммы неотрицательных целых чисел от 1 до n, вводимого с клавиатуры, написанный моей дипломницей при обучении её программированию с нуля. Именно на ней я испытал преподавание Фортрана в качестве первого языка. Надеюсь, что для неё это пошло на пользу, а мой экперимент удался. По крайней мере основы она усвоила за пару занятий, первое из которых ушло на лекцию про язык.

Program chisla implicit none ! Variables integer n,i,s ! Body of chisla s=0 write (*,*) "Введите n" read (*,*) n if (n.le.0) then write (*,*) "Отрицательное или ноль" else do i=1,n s=s+i end do write (*,*) "Сумма=", s end if end
Нетрудно заметить, что как мы думаем, так и записываем код. Никаких сложностей у обучаемого не может возникнуть в принципе. Внимательный читатель конечно же спросит, что за implicit none и две звездочки в скобках через запятую. implicit none говорит нам, что мы явно указываем тип переменных, тогда как без данной записи компилятор будет сам угадывать тип. Первая звездочка означает, что ввод и вывод происходят на экран, а вторая говорит о том, что формат ввода-вывода определяется автоматически. Собственно, программы на Фортране выглядит не сложнее, чем написанный выше кусок кода.

А что насчет программной среды?

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

Для написания программ на Фортране подойдет любой текстовый редактор. Если хочется подсветки синтаксиса, то можно использовать Notepad++ (поддерживает синтаксис только 77 стандарта) или SublimeText. Программу написали, чем будем компилировать? Тут все просто, можно использовать свободный GNU Fotran. Если использование планируется некоммерческое, то разрешается замахнуться и на компилятор от Intel, который хорошо оптимизирован под одноименные процессоры и поставляется с минимально необходимым IDE. Т.е. порог вхождения весьма льготный.

Лучшей средой разработки под Фортран по мнению многих пользователей остается Compaq Visual Fortran 6.6, последняя версия которого увидела свет в начале 2000-х. Почему же так сложилось, что среда, основанная на Visual Studio 6.0, которая без танцев с бубном заводится максимум на Windows XP 32 bit, и имеет ограничение на используемую память, снискала такую популярность среди фортранщиков. Ответ приведен на рисунке ниже.

Это Compaq Array Visualizer, который представляет собой очень удобный инструмент по визуализации 1, 2 и 3-х мерных массивов в процессе отладки программы непосредственно из дебаггера. Как говорится, попробовав раз, ем и сейчас. Дело в том, что Фортран сейчас используется в основном в науке (о чем будет сказано позже), в частности в той области, с которой я имею дело, а именно в физике атмосферы. При отладке программ массивы представляют собой различные метеорологические поля, такие как температура, давление, скорость ветра. Искать ошибку в графических полях гораздо проще, чем в наборе цифр, тем более, обычно известно, как примерно должно выглядеть поле, поэтому очевидные ошибки отсекаются моментально.

К сожалению, все наработки по компилятору перешли от Compaq к Intel. Intel первоначально поддерживала Array Visualizer, правда, уже те версии были бледным отражением продукта от Compaq, работать с ними было не так удобно, как прежде, но хотя бы минимальная работоспособность поддерживалась. Увы, Intel перестала разрабатывать новые версии Array Visualizer"а, поставив крест на этом удобнейшем инструменте. Именно поэтому фортрановское сообщество в основной своей массе пишет программы и занимается их отладкой под Compaq Visual Fortran на Windows, а боевые расчеты запускает на серверах под Linux, используя Intel-овские компиляторы. Интел, пожалуйста, услышь мольбы пользователей, верни нормальный инструмент для визуализации массивов в свой дебаггер!

Место Фортрана в современном мире

А сейчас мы подошли к той самой теме, которая обычно вызывает бурную дискуссию с моими коллегами, использующими Matlab, которые утверждают, что описанный в данном посте раритетный язык ни на что не годится. Тут я с ними не соглашусь. Дело в том, что Фортран исторически использовался в инженерных или научных расчетах, а потому со временем обрастал множеством готовых библиотек и кодами программ решения той или иной задачи.

Код в буквальном смысле передается из поколения в поколение, да еще и хорошо документируется. Можно найти множество готовых решений уравнений математической физики, линейной алгебры (здесь следует отметить удачную реализацию работы с матрицами), интегральных и дифференциальных уравнений и многого-многого другого. Наверное тяжело найти задачу из области физмат наук, для которой не был бы реализован алгоритм на языке Фортран. А если учесть отличную оптимизацию интеловских компиляторов под интеловские же процессоры, поддержку параллельных вычислений на высокопроизводительных кластерах, то становится понятно почему в научной среде этот язык занимает заслуженное первое место. Думаю, на любом суперкомпьютере можно найти установленный фортрановский компилятор.

Большинство серьезных моделей, по крайней мере из области физики атмосферы, написаны именно на Фортране. Да-да, прогноз погоды, которым каждый интересуется время от времени, получается в ходе расчетов моделей, написанных на этом языке. Более того, язык не находится в стагнации, а постоянно совершенствуется. Так, после описанных раннее стандартов 77 и 90, появились новые редакции 95, 2003, 2008, поддержка которых внедрена в актуальные компиляторы. Последние версии Фортрана несколько освежили старый проверенный временем язык, превнеся поддержку современного стиля, добавив объектно-ориентированное программирование, отсутствие которого было чуть ли не самым главным козырем противников этого языка. Более того, The Portland Group выпустила PGI CUDA Fortran Compiler, позволяющий проводить высокопараллельные расчеты на видеокартах. Таким образом, пациент более чем жив, а значит программисты на Фортран остаются востребованными до сих пор.

Вместо послесловия

А теперь я хотел бы вернуться к изначально затронутой теме об обучении программированию, и попытаться тезисно сформулировать основные плюсы Фортрана при выборе его в качестве первого языка.
  • Фортран очень прост в обучении, синтаксис понятен неподготовленному человеку. Познав основы, легко переучиться на любой другой язык.
  • Бесплатный набор средств позволяет не получать лишних вопросов от правообладателей.
  • Язык знаком преподавателям, так как существует давно, а учителя у нас в основном представители старшего поколения.
  • Широко распространен по всему миру и является кладезем всевозможных библиотек.
  • Стандартизирован, кроссплатформеннен и совместим с более ранее ревизиями.
  • Полезен для студентов технических, а особенно физмат специальностей, ввиду ориетации на научные и инженерные вычисления.
  • Актуален и востребован и по сей день.
Так почему же не Фортран?

Введение

Еще лет десять назад, до массового появления персональных компьютеров в бывшем СССР, в представлении большинства наших сограждан основными (чаще всего, единственными) пользователями ЭВМ были программисты. Вернее, термин "пользователь" вообще не существовал, а его синонимом был "программист". При этом самих программистов довольно часто называли "математиками", потому что в большинстве своем вычислительные машины (EC, СМ) использовались для решения научно-технических задач, связанных с интенсивными математическими расчетами.

Надо признать, что на протяжении всей своей жизни Fortran не отличался изысками в области технологии программирования. Жесткая структура кода программы, довольно примитивный набор операторов управления структурой программы (без оператора GOTO написать программу было практически невозможно), слабые средства описания данных - все это было общеизвестно.

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

Сильной стороной языка, обеспечивающей долговечность разработанных на нем программ, всегда была высокая степень переносимости исходного кода между различными платформами (как существующими в данный момент, так и будущими). В основе такой совместимости лежит наличие достаточно жесткого стандарта, которого стараются придерживаться все разработчики компиляторов. Ранее стандарты языков программирования являлись формально чисто американскими и утверждались Американским Национальным Институтом Стандартов (American National Standard Institute - ANSI), позднее они стали фиксироваться также Международной Организацией Стандартов (International Standard Organization - ISO). Поэтому современные стандарты имеют обозначение ANSI/ISO.

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

Глава 1. История

Фортран (Fortran) - первый язык программирования высокого уровня <#"justify">Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования для новых вычислительных архитектур, позволяет применять современные технологии программирования. Фортран имеет достаточно большой набор встроенных математических функций, поддерживает работу с целыми, вещественными и комплексными числами высокой точности. Выразительные средства языка изначально были весьма бедны, поскольку Фортран был одним из первых языков высокого уровня. В дальнейшем в Фортран были добавлены многие лексические конструкции, характерные для структурного, функционального и даже объектно-ориентированного программирования.

Глава 2. Fortran

Первоначальный выпуск FORTRAN для IBM 704, содержащиеся 32 отчетность <#"justify">1.измерение и эквивалентность отчетность

.Операторы присваивания

3.три пути арифметики <#"justify">Подпрограммы, функция, конец

Вызов и возврвщение

В течение следующих нескольких лет, FORTRAN II бы также добавить поддержку ДВОЙНОЙ ТОЧНОСТИ и КОМПЛЕКС типы данных.

Простой FORTRAN II

Эту программу, для Герона формула <#"justify">§Основная программа, ПОДПРОГРАММЫ, ФУНКЦИЯ, и БЛОК ДАННЫХ, программа единиц

§ЦЕЛОЕ ЧИСЛО, РЕАЛЬНЫЕ, ДВОЙНОЙ ТОЧНОСТИ, КОМПЛЕКС, и ЛОГИЧЕСКИЕ типы данных <#"justify">FORTRAN 77

После выхода FORTRAN 66 стандартных, компилятор поставщиков представил ряд расширений для "Стандарт Fortran", предлагая ANSI в 1969 году, чтобы начать работу по пересмотру 1966 стандарта. Окончательный этот пересмотренный стандарт распространен в 1977 году, ведущих к официального утверждения нового FORTRAN стандарт в апреле 1978 года. Новый стандарт, известный какFORTRAN 77, добавлен ряд существенных особенностей, для решения многих недостатков FORTRAN 66:

§Блок ЕСЛИ и КОНЕЦ ЕСЛИ заявления, с дополнительными ЕЩЕ и ОСТАЛЬНОЕ, ЕСЛИ положения, чтобы обеспечить улучшенная поддержка языков структурное программирование <#"justify">В этом пересмотра стандарта, ряд функций, были удалены или изменены таким образом, что может аннулировать ранее в соответствии со стандартом программ. (Удаление была единственной допустимой альтернативой X3J3 в то время, поскольку концепция "осуждения" еще не был доступен для стандарты ANSI.) В то время как большинство из 24 пунктов в ходе конфликта списка (см. Приложение A2 X3.9-1978) обратился лазейки или патологических случаев, разрешенных предыдущего стандарта, но редко используется, небольшое число конкретных возможностей были умышленно удалены, таких как:

§Чтение в Д edit (Hollerith поле) дескриптор в ФОРМАТЕ, спецификация.

§Overindexing из границ массива с индексами.

ИЗМЕРЕНИЕ(10,5)= A(11,1)

§Передача управления в диапазоне цикл DO (также известный как "Extended Range").

В значительной задержкой во преемника на FORTRAN 77, неофициально известной как Fortran 90 (а до этого, Fortran 8X), был, наконец, выпущен в качестве стандарта ISO, в 1991 г, и ANSI Стандарт в 1992 году. Этот крупный пересмотр добавлено много новых функций, чтобы отразить значительные изменения в практике программирования, который сложился с 1978 года стандарт:

§Свободной форме входного источника <#"justify">§всего, частичной и масках массива операторы присваивания и массив выражений, таких как X(1:N)=R(1:N)*COS(A(1:N))

§ГДЕ заявление для селективного массива назначения

§массив-значной константы и выражения,

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

§РЕКУРСИВНАЯ <#"justify">Fortran 95

Fortran 95 был несовершеннолетним пересмотра, в основном, для решения некоторых нерешенных вопросов от стандарта Fortran 90. Тем не менее, Fortran 95 также добавлен ряд расширений, в частности, от High Performance Fortran <#"justify">§FORALL и вложенные ГДЕ конструкции для помощи векторизация

§Определяемые пользователем ЧИСТЫЙ и ЭЛЕМЕНТАЛЬ процедуры

§По умолчанию инициализации производного типа компонентов, включая указатель инициализации

§Расширена возможность использовать выражения инициализации для объектов данных

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

Ряд intrinsic-функции были расширены (например, dim аргумент был добавлен в maxloc intrinsic).

Несколько функций, отметил в Fortran 90 к устаревшим были сняты с Fortran 95:

§СДЕЛАТЬ отчетность с использованием РЕАЛЬНЫЕ и ДВОЙНОЙ ТОЧНОСТИ переменные

§Ветвление в КОНЕЦ ЕСЛИ заявление из-за ее блок

§НАЗНАЧЕНИЕ и назначен ГОТО заявление, и назначен спецификаторов формата

§H изменить дескриптор.

Важным дополнением к Fortran 95 был Технический отчет ИСО <#"center">fortran язык программирование платформа

Глава 3. Примеры программ

1.Программа приветствияhellon*,"Hello World!"*, nprogram hello

2.Программа решения квадратного уравненияkvadrat_yravnNONE: : A, B, C, A2: : SQD, X1, X2= 4.0; B = 2.0; C = 1.0= A + A; SQR = SQRT (CMPLX(B * * 2 - 4 * A * C))

X1 = (- B + SQD) / A2; X2 = (- B - SQD) / A2* , КОРНИ УРАВНЕНИЯ:* , X1 = , X1* , X2 = , X2

END PROGRAM kvadrat_yravn

.Вывод таблицы соответствия температур по Цельсию и ФаренгейтуTABLNONE(2) : : I, CELSIUS, FAHRENHEIT*, таблица соответствия между Ц и Ф*, Ц и ФI = 0, 20= 5 * I= 32 + CELSIUS * 9/5*, C = , CELSIUS, F = , FAHRENHEITDO

Заключение

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

Не смотря на свой «почтенный» возраст, Фортран постоянно обновляется. В среднем один раз в 10 лет выходит новый стандарт языка, учитывающий современное состояние программирования с одной стороны и пожелания программистов-прикладников с другой.

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

В 2017 году языку Fortran исполняется 60 лет. За это время язык несколько раз дорабатывался. «Современными» версиями считаются Fortran 90, 95, 2003 и 2008. Если изначально это был язык программирования высокого уровня с чисто структурной парадигмой, то в более поздних версиях появились средства поддержки ООП и параллельного программирования. На сегодняшний день Fortran реализован для большинства платформ.

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

В 1950 году, когда Джону Бекусу было 25 лет, он, получив степень магистра математики в Колумбийском университете, устроился программистом в фирму IBM. Вскоре он возглавил группу, разрабатывающую интерпретатор под названием «Быстрый кодировщик» для компьютера марки IBM-701. Затем он работал в составе группы по созданию более мощного преемника модели 701, машины IBM-704.

В 1953 году Бекус выступил с рационализаторской инициативой. Он предложил создать язык и компилятор к нему, которые должны были упростить программирование модели IBM-704. Система позволяла записывать программы в алгебраической форме, а компилятор должен был автоматически переводить ее в машинные коды.

С этим предложением Джон Бекус, как говорится, оказался в нужном месте, в нужное время. С опозданием выйдя на рынок, фирма IBM испытывала затруднения с увеличением сбыта своих компьютеров. По этой причине она поддерживала исследования по информатике в Колумбийском, Гарвардском и некоторых других университетах. Помимо этого, IBM и сама искала пути снижения стоимости программирования, а также пыталась упростить работу с компьютерами, чтобы сделать их более привлекательными, «дружественными» для пользователей.

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

Поэтому они наверняка согласились бы изучить язык высокого уровня, особенно если бы он напоминал привычные им алгебраические формулы. Такие рассуждения подвигли IBM к разработке Fortran.


IBM-704

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

Один из управляющих фирмы IBM решил, что из шахматистов получаются хорошие программисты, поэтому он заводил беседы с возможными кандидатами в программисты во время шахматных партий с одним из сотрудников фирмы IBM (который, кстати, был чемпионом США по шахматам).

Мало кто из восьми человек, занятых в разработке Fortran, был серьезно знаком с компьютерами. Они пришли из университетов и авиакомпаний, а также из собственных программистских групп IBM.

Даже сам руководитель команды разработки Fortran Джон Бекус имел лишь несколько лет опыта работы с компьютером, когда приступил к созданию нового языка программирования.
До колледжа Бекус был посредственным учеником («Я прошел больше школ, чем могу вспомнить»). После службы в армии во время второй мировой войны он оказался в Нью-Йорке, где поступил в школу радиотехники. «Пределом моих стремлений было сделать высококачественное звуковоспроизводящее устройство», - признался Бекус позднее,.

Однако преподаватель по ремонту телевизионной и радиоаппаратуры пробудил у Бекуса интерес к математике и убедил его продолжить учебу в Колумбийском университете. Так скромно началась одна из самых плодотворных карьер в истории вычислительной техники.

Итак, разработчики во главе с Бекусом расположились в штаб-квартире фирмы IBM на Мэдисон-авеню в Нью-Йорке.

Они выделили основные понятия нового языка, в частности оператор присваивания (например, N = 100), задававший переменным определенные значения, ввели индексируемые переменные, которые сообщали компьютеру, какой элемент из списка переменных нужен (например, X(3) означает третий элемент списка, названного X), предложили очень важный оператор DO, который позволял повторять нужную последовательность операторов заданное число раз.

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

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

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

В конце 1956 года и в 1957 году интенсивность работы по доводке и отладке компилятора резко возросла. В этот период члены группы часто снимали номер в ближайшей гостинице, где отсыпались днем, работая на машине по ночам, чтобы иметь возможно больше непрерывного машинного времени. Ошибки одна за другой устранялись, и в апреле 1957 года компилятор был готов для использования владельцами машины IBM-704.

«Большой конфуз»

По ошибке, которую Бекус назвал «большим конфузом», компилятор был послан в лабораторию «Вестингауз-Беттис» в виде колоды перфокарт и без каких-либо инструкций; что и позволило Гербу Брайту из лаборатории «Вестингауз-Беттис» запустить Fortran вслепую. Остальные пользователи получили систему на магнитной ленте вместе с руководством для оператора.

В одну из пятниц апреля 1957 года в компьютерный центр атомной лаборатории «Вестингауз-Беттис» возле Питтсбурга почтальон доставил загадочную посылку. Программист Херб Брайт и двое его коллег открыли ящик, на котором не было никаких пометок, и обнаружили там стопку примерно из 2 тысяч перфокарт, без единой инструкции.

Рассматривая перфокарты, Брайт вспомнил, что в IBM как раз шла окончательная отладка языка высокого уровня, предназначенного для использования на IBM-704. Может, почтальон принес именно этот долгожданный компилятор? Брайт и его друзья решили загрузить загадочные карты в компьютер и посмотреть, что получится.

Брайт вложил в считывающее устройство компьютера тестовую программу, написанную на Фортране, и нажал кнопку пуска. Новый компилятор выдал на принтер сообщение: «на карте № 25 обнаружена ошибка в операторе - пропущена запятая».

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

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

Распространение и адаптация

Но поначалу Fortran принимали без особой теплоты. Программисты, как вспоминал Бекус, «весьма скептично воспринимали все наши заявки». Однако по сравнению со своими предшественниками Fortran был сравнительно прост для обучения и использования.

Кроме того, фирма IBM снабжала все модели 704 Fortran’ом бесплатно. В результате к 1958 году более половины всех машинных команд на 60 компьютерах фирмы были получены не вручную, а «автоматически», с помощью нового языка высокого уровня.

Бекус понимал, что конкурирующие производители тоже займутся разработкой языков высокого уровня для своих вычислительных машин. Однако Fortran быстро стал нормой и его адаптировали для различных моделей ЭВМ. Первую адаптацию осуществила сама фирма IBM. Через пять лет Fortran использовался на шести различных моделях компьютеров фирмы IBM, а также на компьютерах компании «Сперри Рэнд», «Филко» и других.

Небольшая группа, в которую входил Дэвид Хеммис, за короткое время адаптировала Fortran к машине IBM-650, меньшей, чем IBM-704. Хеммис и его коллеги разработали систему «FORTRANSIT» (FOR TRANSIT - для перехода); позднее эти два слова слились в одно. Таким образом, система FORTRANSIT стала первым транслятором исходного, работающим на ЭВМ нескольких моделей.


Дэвид Хеммис – один из первых разработчиков компьютерных языков, за рулем своего автомобиля выпуска 1928 года. Фотография сделана в Уэстхемптоне (шт. Нью-Йорк) во время автомобильных гонок 1957 года.

Доработка

Тем не менее, работу над новым языком нужно было продолжать достаточно долго: это стало ясно еще в начале 1957 года, когда продолжался процесс отладки. Бекус и другие разработчики понимали, что язык нуждается в более точной системе диагностики программных ошибок. Кроме того, необходимо было реализовать возможность раздельного и независимого написания подпрограмм и программных модулей. Таким образом язык получил бы еще одно преимущество – повторное использование кода.

Благодаря усилиям разработчиков всего через год после создания оригинала появился Fortran II. Одно из достоинств нового языка состояло в том, что он позволял вставлять в программы фрагменты кода на ассемблере. Более поздняя версия, Fortran III, была создана в 1958 году. Про Fortran IV, который еще больше расширил возможности языка, стало известно в 1962 году.

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

Например, не все компиляторы одинаково истолковывали важнейший оператор DO: некоторые всегда выполняли цикл хотя бы один раз, не проверяя, нужно ли его вообще выполнять, другие осуществляли такую проверку. Чтобы навести порядок в подобных вопросах, производители и пользователи компьютеров договорились провести стандартизацию языка.

В 1966 году первый стандарт получил название Fortran 66. В 1977 году, соответственно, вышел стандарт Fortran 77. В 1991 году появился Fortran 90. Fortran 95 создан в 1997 году.

Fortran в СССР

В Советском союзе ко двору больше пришелся Алгол-60. Поэтому Fortran в этой стране появился позже. Тем не менее, постепенно он вышел на первое место по популярности. Были разработаны компиляторы (трансляторы) для большинства отечественных ЭВМ – «Минск-32», БЭСМ-4, БЭСМ-6, АС-6, ЕС ЭВМ, СМ ЭВМ, МВК «Эльбрус» и так далее.

В ИПМ им. Келдыша в разное время было разработано несколько трансляторов. Два из них – Фортран-Алмо и Форшаг (Фортран шаговый) были написаны на языке Алмо и код генерировали на этом же языке. Это позволило установить трансляторы на несколько разнотипных ЭВМ. В обоих трансляторах реализован стандарт Fortran 66.

Форшаг также включал язык диалога, который позволил создавать, редактировать и выполнять трансляцию кода в диалоговом режиме. Помимо этого, был разработан комплекс графических программ для Фортрана – Графор, который активно использовался на различных ЭВМ.

Fortran и по сей день остается популярным среди научных работников. Это первый язык программирования высокого уровня, имеющий транслятор, получивший практическое применение и дальнейшее развитие. Как говорилось в руководстве фирмы IBM, выпущенном в 1957 году, «Fortran обеспечивает эффективный способ создания программ для модели 704, прост в обучении и не требует глубоких знаний в области ЭВМ».

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

Однако следующее поколение программистов стало относиться к Fortran"у как к «ископаемому». Эдсгер Дейкстра, язвительно отмечал, что обучение студентов этому языку должно приравниваться к серьезному преступлению.