Логин: Пароль:

Язык Фортан

Основы Фортана

Программирование на заре вычислительной техники было в высшей степени утомительным занятием. Программисту нужно было в тонкостях разбираться в командах, регистрах и прочих деталях центрального процессора (ЦПУ) той вычислительной машины, для которой делалась программа. Сам исходный текст программы записывался в цифровых обозначениях, называемых восьмеричным кодом. Со временем появились мнемонические обозначения и программы приобрели форму машинных, или ассемблеровских, кодов. Эти коды преобразовывались в машинные инструкции при помощи программ, называемых ассемблерами. Такая форма программирования позволяла очень эффективно использовать ЦПУ, но все же в 50-х годах постепенно стало ясно, что она весьма неудобна — на написание и отладку программ требовалось слишком много времени. Эти трудности побудили группу, возглавляемую Джоном Бэкусом из фирмы IBM, разработать один из самых ранних языков высокого уровня — Фортран. Их целью было создать язык, достаточно простой для понимания и в то же время мало уступающий языку ассемблера в отношении производительности программ.

 

Результат превзошел все их ожидания. Этот язык, в самом деле, было легко учить, поскольку он позволял записывать математические формулы почти в том же виде, в каком они обычно пишутся в математических текстах (само название Фортран представляет собой сокращение от Formula Translation — перевод формул). Это позволяло существенно ускорить написание работоспособных программ, причем за счет лишь небольшой потери в эффективности, ибо компилятор был разработан весьма тщательно. Но Фортран был не просто новшеством — он ознаменовал собой революцию в программировании. Освободившись от хлопот, связанных с использованием ассемблера, программисты могли теперь больше сосредоточиться на самих задачах. Но, пожалуй, еще важнее было то, что компьютеры стали доступны любому ученому или инженеру, готовому потратить немного времени для освоения Фортрана в необходимом для работы объеме. Уже не надо было быть экспертом по компьютерам, чтобы иметь возможность писать прикладные программы.

 

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

 

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

 

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

 

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