ЭВМHISTORY
Статьи. Обзоры. Истории

Программирование | FORTRAN



fortran, фортран, язык, программирование

Фортран (Fortran) — первый язык программирования высокого уровня, получивший практическое применение, имеющий транслятор и испытавший дальнейшее развитие. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является сокращением от FORmula TRANslator (переводчик формул). Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана — большое количество написанных на нём программ и библиотек подпрограмм.

В 1954 г. группа разработчиков фирмы IBM под руководством Джона Бэкуса приступила к разработке языка программирования. Местом рождения Фортрана стала штаб-квартира фирмы IBM в Нью-Йорке. Несмотря на это группа разработчиков продолжала работу над языком. Работа над компилятором языка оказалась не простой и продолжалась более двух лет. В апреле 1957 г. компилятор языка Фортран был готов для использования владельцами машины IBM-704. Вначале Фортран не хотели признавать, однако по сравнению со своими предшественниками Фортран был весьма прост для обучения и использования.

Через пять лет Фортран использовался на шести различных моделях компьютеров фирмы IBM. Новый язык не был лишен недостатков, устранение которых привело к появлению Фортрана II, который позволял присоединять программы на ассемблере. В 1958 г. была создана версия Фортран III, а версия Фортран IV, расширившая возможности языка появилась в 1962 г. Поскольку Фортран многократно адаптировался ко все новым системам машин, постепенно накапливались отличия. Для наведения порядка проводились стандартизации языка в 1966 г., а затем в 1977 г. Фортран оказался первым широко распространенным коммерческим языком.


Дальнейшее развитие


Fortran 90 (1991)

Значительно переработан стандарт языка.

1. Введён свободный формат написания кода. Появились дополнительные описания IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST.

2. Введены управляющие операторы и конструкции. Добавлены DO … END DO (вместо завершения цикла меткой), DO WHILE, оператор передачи управления на начало цикла CYCLE, конструкция выбора SELECT CASE (для замены громоздких конструкций IF и операторов GOTO), а также заключительный оператор программной единицы, модульной или внутренней процедуры END.

3. Введён инструментарий указателей и функции для работы с оперативной памятью (по аналогии с языком С).

4. Введены операторы работы с динамической памятью (ALLOCATE, DEALLOCATE, NULLIFY).

5. Добавлены программные компоненты MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT.

6. Введено маскирование присваивания массивов (присваивание при выполнении наложенного на элементы массива логического условия без использования операторов условия), а также работа с сечениями массивов. Введён оператор и конструкция WHERE для частичной замены циклов (правая часть оператора присваивания не изменяется). Маскирование присваивания распространяется практически на все операторы, конструкции и функции, оперирующие с массивами.

7. Стандартные операции присваивания, сложения, вычитания, а также деления и умножения на число распространены на массивы и их секции, определяемые сечениями. В этом случае осуществляется поэлементное присваивание.

8. Появились новые встроенные функции, в первую очередь для работы с массивами. Функции для вычислений в массивах: ALL (лог. произведение) и MASK (логическое сложение), COUNT (число истинных элементов), PRODUCT(произведение элементов массива), SUM (сложение элементов массива), DOT_PRODUCT (скалярное произведение), MATMUL (умножение матриц). Добавились справочные функции, а также функции переформирования и свёртки массивов.

9. В языке появились элементы ООП. Введены производные типы данных. Отдельно объявлен список устаревших черт языка, предназначенных для удаления в будущем.

10. Добавлены дополнительные функции для работы со строковыми данными, в частности, функции TRIM (удаление завершающих пробелов) и REPEAT (кратное копирование строки) и функции выравнивания по левой и правой границам.

Fortran 95 (1997)

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

Fortran 2003 (2004)

Дальнейшее развитие поддержки ООП в языке. Взаимодействие с операционной системой. Добавлены также следующие возможности:

1. Асинхронный ввод-вывод данных.

2. Средства взаимодействия с языком C.

3. Усовершенствование динамического размещения данных.

Fortran 2008 (2010)

Стандартом предполагается поддержка средствами языка параллельных вычислений (Co-Arrays Fortran). Также предполагается увеличить максимальную размерность массивов до 15, добавить встроенные специальные математические функции и др.

© greenmile

Источники:
itslovo.ru


В начало


Программирование | FORTRAN



Рейтинг@Mail.ru Яндекс.Метрика