156 captures
22 Nov 2004 - 21 Dec 2025
May JUN Jul
18
2012 2013 2014
success
fail

About this capture

COLLECTED BY

Organization: Internet Archive

The Internet Archive discovers and captures web pages through many different web crawls. At any given time several distinct crawls are running, some for months, and some every day or longer. View the web archive through the Wayback Machine.

Collection: Wide Crawl started April 2013

Web wide crawl with initial seedlist and crawler configuration from April 2013.
TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20130618122852/https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D1%82%D1%80%D0%B0%D0%BD
 




Фортран



Материал из Википедии  свободной энциклопедии


Перейти к: навигация, поиск  
Фортран
Семантика:

императивный

Появился в:

1957

Автор(ы):

Джон Бэкус

Типизация данных:

строгая, статическая

Основные реализации:

GFortran, Open Watcom, Sun Studio, XL Fortran, Intel Fortran

Повлиял на:

ALGOL 68, PL/I

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

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

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

Содержание

Эволюция стандартов языка[править]

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

FORTRAN 66 (1972)
На базе стандарта фирмы IBM FORTRAN IV
FORTRAN 77 (1980)
Введено множество улучшений:[2]
  1. Введены операторы открытия и закрытия файла (OPEN, CLOSE) и вывода на стандартное устройство — PRINT.
  2. Добавлены строковый тип данных и функции для его обработки.
  3. Введён блочный оператор IF и конструкция IF THEN — ELSE IF THEN — END IF, а также оператор включения фрагмента программы INCLUDE.
  4. Введена возможность работы с файлами прямого доступа.
  5. Увеличена максимальная размерность массива с 3 до 7. Сняты ограничения на индексы массива.
  6. Усовершенствованы и расширены возможности работы с процедурами.
  7. Введено понятие внутреннего файла (каковыми являются массивы, числовые и строковые переменные). Внутренние файлы позволяют, в частности, осуществлять преобразование число-строка и строка-число стандартным операторами чтения и записи READ и WRITE[3].
Fortran 90 (1991)
Значительно переработан стандарт языка.[3]
  1. Введён свободный формат написания кода. Появились дополнительные описания IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST.
  2. Введены управляющие операторы и конструкции. Добавлены DO … END DO (вместо завершения цикла меткой), DO WHILE, оператор передачи управления на начало цикла CYCLE, конструкция выбора SELECT CASE (для замены громоздких конструкций IF и операторов GOTO), а также заключительный оператор программной единицы, модульной или внутренней процедуры END[2].
  3. Введён инструментарий указателей и функции для работы с оперативной памятью (по аналогии с языком С).
  4. Введены операторы работы с динамической памятью (ALLOCATE, DEALLOCATE, NULLIFY).
  5. Добавлены программные компоненты MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT.
  6. Введено маскирование присваивания массивов (присваивание при выполнении наложенного на элементы массива логического условия без использования операторов условия), а также работа с сечениями массивов. Введён оператор и конструкция WHERE для частичной замены циклов (правая часть оператора присваивания не изменяется). Маскирование присваивания распространяется практически на все операторы, конструкции и функции, оперирующие с массивами.
  7. Стандартные операции присваивания, сложения, вычитания, а также деления и умножения на число распространены на массивы и их секции, определяемые сечениями. В этом случае осуществляется поэлементное присваивание.
  8. Появились новые встроенные функции, в первую очередь для работы с массивами. Функции для вычислений в массивах: ALL(лог. произведение) и MASK(логическое сложение), COUNT(число истинных элементов), PRODUCТ(произведение элементов массива), SUM(сложение элементов массива), DOT_PRODUCT (скалярное произведение), MATMUL (умножение матриц). Добавились справочные функции, а также функции переформирования и свёртки массивов.
  9. В языке появились элементы ООП[4]. Введены производные типы данных. Отдельно объявлен список устаревших черт языка, предназначенных для удаления в будущем.
  10. Добавлены дополнительные функции для работы со строковыми данными, в частности, функции TRIM (удаление завершающих пробелов) и REPEAT(кратное копирование строки) и функции выравнивания по левой и правой границам.
Fortran 95 (1997)
Коррекция предыдущего стандарта. Введён оператор и конструкция FORALL, позволяющие более гибко, чем оператор и конструкция WHERE, присваивать массивы и заменять громоздкие циклы. FORALL позволяет заменить любое присваивание сечений или оператор и конструкцию WHERE, в частности, обеспечивает доступ к диагонали матрицы. Данный оператор считается перспективным в параллельных вычислениях, способствуя более эффективному, чем циклы, осуществлению распараллеливания[3].
Fortran 2003 (2004)
Дальнейшее развитие поддержки ООП в языке. Взаимодействие с операционной системой. Добавлены также следующие возможности:[2]
  1. Асинхронный ввод-вывод данных.
  2. Средства взаимодействия с языком C.
  3. Усовершенствование динамического размещения данных[5].
Fortran 2008 (2010)
Стандартом предполагается поддержка средствами языка параллельных вычислений (Co-Arrays Fortran)[2][6]. Также предполагается увеличить максимальную размерность массивов до 15, добавить встроенные специальные математические функции[2] и др.

Компиляторы[править]

С момента первоначальной разработки языка, компиляторы Фортрана производит фирма IBM. В настоящее время фирмой IBM поставляется оптимизирующий компилятор VS Fortran[7] для мэйнфреймов IBM System z, история развития различных версий которого восходит ещё к 1964 году, а также компилятор XL Fortran[8] для платформ на базе архитектуры PowerPC — AIX, Linux и суперкомпьютера Blue Gene (выпускалась также версия для Mac OS X, когда компьютеры Macintosh использовали процессоры PowerPC). Оба этих компилятора содержат очень сложные оптимизаторы, являющиеся результатом непрерывной научной работы специалистов IBM на протяжении полувека. На базе компилятора IBM Fortran XL фирмой Absoft, бизнес-партнёром IBM, создан и поставляется компилятор Absoft Pro Fortran для систем на базе процессоров PowerPC (Linux, Mac OS X) и Intel (Linux, Mac OS X, Windows)[9].

До 1997 крупным производителем компилятора Фортран для операционной системы Windows была корпорация «Microsoft». Впоследствии она отказалась от их разработки в связи с низкой прибыльностью. После этого компилятор поставляла фирма «DEC», вошедшая в 1998 году в состав «Compaq» и вместе с последней в 2002 году слившаяся с «HP». Дальнейшей разработкой этой версии компилятора стала заниматься фирма Intel, а компилятор называется Intel Fortran Compiler, который позволяет оптимизировать код под платформы Intel IA-32, x86_64 и IA-64.

Компания «DEC» поставляет компилятор, интегрированный в среду разработки Digital Visual Fortran, основанную на Microsoft Visual Studio. Наиболее известными продуктами этой линейки являются FPS 4.0 (Microsoft Fortran Power Station), DVF 5.0 и 6.0. Каждый компилятор может поддерживать несколько стандартов Фортрана. Слияния компаний явились причиной того, что последующие продукты появлялась на рынке под торговыми марками Compaq и HP. В настоящее время HP продаёт среду разработки версии 6.6 для Intel/win32. Поддержка Фортрана реализована также для всех высокопроизводительных платформ HP.

Другим крупным поставщиком систем разработки на Фортране является фирма «Lahey», предлагающая интегрированные решения для Windows и Linux.

Долгое время лучшим компилятором Фортрана для PC считался компилятор фирмы «Watcom», который был выделен в отдельный проект Open Watcom развивающий компилятор на открытой основе.

Среди бесплатных компиляторов Фортран следует выделить компилятор от бывшей Sun Microsystems (сейчас Oracle), входящий в состав Sun Studio, который генерирует эффективный код под SPARC, x86 и x86-64[10] и доступен для ОС Solaris, OpenSolaris и GNU/Linux.

Фонд свободного программного обеспечения GNU выпускал открытый компилятор Фортрана-77 g77, доступный практически для любой платформы и полностью совместимый с GCC. Сейчас ему на смену пришел компилятор GFortran, в котором реализованы практически все конструкции стандарта Фортран-95 и многие конструкции стандартов Фортран-2003 и Фортран-2008. Он также полностью обратно совместим с Фортран-77. Также существует независимый проект g95 по созданию на основе GCC компилятора Фортран-95.

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

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

Перфокарта с разметкой колонок для Фортрана.

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

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

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

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

Однако современный Фортран избавлен от избытка меток за счёт введения таких операторов, как DO … END DO, DO WHILE, SELECT CASE. Более того, в современных стандартах языка оставлен лишь классический оператор GOTO, применяемый во многих языках и поныне. Вычисляемый оператор GOTO, а также конструкция ENTRY — множественного входа в процедуры, были исключены.

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

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
Замечания.

Взаимодействие с другими языками[править]

Многие системы программирования позволяют компоновать полученные в результате трансляции фортрановской программы объектные файлы с объектными файлами, полученными от компиляторов с других языков, что позволяет создавать более гибкие и многофункциональные приложения. Для языка Фортран также доступно большое количество библиотек, содержащих как подпрограммы решения классических вычислительных задач (LAPACK, IMSL, BLAS), задач организации распределённых вычислений (MPI, pvm), так и задач построения графических интерфейсов (Quickwin, FORTRAN/TK) или доступа к СУБД (Oracle).

Фортран в СССР[править]

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

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

В 1970x в ИПМ была разработана графическая библиотека ГРАФОР («ГРАфическое расширение ФОРтрана»)[12].

В конце 80-х — начале 1990-х физик Андрей Зарецкий создал серию детских книжек, одним из главных героев которых был профессор Фортран, доступным языком объяснявший детям основы компьютерной грамотности и программирования[13][14].

Примечания[править]

  1. См., например: Netlib Repository at UTK and ORNL
  • 1 2 3 4 5 6 А. М. Горелик. Эволюция языка программирования Фортран (1957—2007) и перспективы его развития//Вычислительные методы и программирование, 2008, Т. 9, с. 53-71
  • 1 2 3 Бартеньев О.В. Современный Фортран. — М.: Диалог МИФИ, 2005. — ISBN 5-86404-113-0
  • А. М. Горелик. объектно-ориентированное программирвание на современном Фортране
  • С. Д. Алгазин, В. В. Кондратьев. Программирование на Visual Fortran. — М.: «Диалог МИФИ», 2008. — 448 с. — ISBN 5-8243-0759-8
  • Горелик А. М.Новости
  • VS FORTRAN
  • XL Fortran for Linux
  • Absoft Pro Fortran Compiler Suites General Overview
  • Sun Studio — Benchmarks
  • Очерк Александра Расторгуева о появлении Фортрана в Дубне
  • История компьютерной графики в России
  • Энциклопедия профессора Фортрана, Sutki.net (29 января 2008). Архивировано из первоисточника 10 марта 2012. Проверено 11 июня 2013.
  • Кириленко, Александр. Эстония вводит программирование в школах начиная с младших классов, Ноосфера (7 сентября 2009). Архивировано из первоисточника 9 сентября 2012. Проверено 11 июня 2013.
  • Литература[править]

    Ссылки[править]

    Источник  «http://ru.wikipedia.org/w/index.php?title=Фортран&oldid=56187442» 

    Категории: 
    Появились в 1957 году
    Языки программирования по алфавиту
    Фортран
    Объектно-ориентированные языки программирования
    Процедурные языки программирования
    Скрытая категория: 
    Статьи с примерами кода Fortran




    Навигация



    Персональные инструменты



    Создать учётную запись
    Представиться системе
     



    Пространства имён



    Статья

    Обсуждение
     


    Варианты









    Просмотры



    Читать

    Править

    История
     


    Действия













    Навигация




    Заглавная страница

    Рубрикация

    Указатель АЯ

    Избранные статьи

    Случайная статья

    Текущие события
     



    Участие




    Сообщить об ошибке

    Портал сообщества

    Форум

    Свежие правки

    Новые страницы

    Справка

    Пожертвования
     



    Печать/экспорт




    Создать книгу

    Скачать как PDF

    Версия для печати
     



    Инструменты




    Ссылки сюда

    Связанные правки

    Спецстраницы

    Постоянная ссылка

    Сведения о странице

    Цитировать страницу
     



    На других языках




    العربية

    Azərbaycanca

    Беларуская

    Български



    Bosanski

    Català

    کوردی

    Česky

    Чӑвашла

    Dansk

    Deutsch

    Ελληνικά

    English

    Esperanto

    Español

    Eesti

    Euskara

    فارسی

    Suomi

    Français

    Gaeilge

    עברית

    ि

    Hrvatski

    Magyar

    Interlingua

    Bahasa Indonesia

    Italiano



    Taqbaylit

    Қазақша



    Kurdî

    Lietuvių

    Latviešu





    Bahasa Melayu



    Nederlands

    Norsk nynorsk

    Norsk bokmål

    Polski

    Português

    Română

    Саха тыла

    Srpskohrvatski / српскохрватски

    Simple English

    Slovenčina

    Slovenščina

    Shqip

    Српски / srpski

    Svenska

    ி



    Тоҷикӣ



    Türkçe

    Українська

    Tiếng Vit



    Править ссылки
     







    Последнее изменение этой страницы: 18:13, 11 июня 2013.

    Текст доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия. Подробнее см. Условия использования.
    Wikipedia®  зарегистрированный товарный знак некоммерческой организации Wikimedia Foundation, Inc.
    Свяжитесь с нами
     


    Политика конфиденциальности

    Описание Википедии

    Отказ от ответственности

    Мобильная версия
     


    Wikimedia Foundation
    Powered by MediaWiki