Мова програмування Fortran

Автор работы: Пользователь скрыл имя, 28 Декабря 2012 в 05:41, реферат

Краткое описание

Фортран (Fortran) (раніше FORTRAN — скорочення від «The IBM Mathematical Formula Translating System», тобто «Система трансляції математичних формул IBM») — це імперативна мова програмування загального призначення, яка особливо підходить для інтенсивних чисельних та наукових обчислень. Розроблена корпорацією IBM в 1950-х роках в університетському містечку на півдні Сан-Хосе, штат Каліфорнія для потреб наукових та інженерних проектів.

Прикрепленные файлы: 1 файл

Fortran.docx

— 51.05 Кб (Скачать документ)

Fortran

   

Фортран (Fortran) (раніше FORTRAN — скорочення від «The IBM Mathematical Formula Translating System», тобто «Система трансляції математичних формул IBM»)  — це імперативна мова програмування загального призначення, яка особливо підходить для інтенсивних чисельних та наукових обчислень. Розроблена корпорацією IBM в 1950-х роках в університетському містечку на півдні Сан-Хосе, штат Каліфорнія для потреб наукових та інженерних проектів. Досить швидко Fortran став домінувати в цій галузі програмування, і ось вже як понад півстоліття знаходиться в постійному вжитку в області чисельного прогнозу погоди, аналізу методом скінченних елементів, обчислювальної гідродинаміки, обчислювальної фізики та хімії. Це одна з найбільш популярних мов в області високопродуктивних обчислень, а також використовується для тестування швидкодії найпотужніших у світі суперкомп'ютерів.

Фортран як мова розвивався стабільно і навіть консервативно. Кожен наступний стандарт був  створений в результаті тривалої дискусії між виробниками компіляторів та зацікавленими експертами. Завдяки  цьому, кожна з версій, що розвивалася, зазвичай додавала тільки розширення мови, одночасно зберігаючи при цьому  сумісність з попередніми версіями (однак були і винятки). Версія Fortran 77 додала підтримку для обробки символьних даних; операції з масивами і модульне програмування з'явилися в Fortran 90; функційне програмування в Fortran 95, об'єктно-орієнтоване програмування та узагальнене програмування в Fortran 2003. І нарешті узагальнене паралельне програмування з допомогою co-arrays, що використовує архітектурно-незалежний та близький для фортрану синтаксис для паралельної декомпозиції даних та виконання інструкцій, було стандартизовано в Fortran 2008.

Зміст

  • 1 Історія розвитку
    • 1.1 FORTRAN
    • 1.2 FORTRAN II
    • 1.3 FORTRAN IV
    • 1.4 FORTRAN 66
    • 1.5 FORTRAN 77
    • 1.6 Fortran 90
    • 1.7 Fortran 95
    • 1.8 Fortran 2003
    • 1.9 Fortran 2008
  • 2 Особливості та можливості сучасного фортрану
  • 3 Компілятори
  • 4 Бібліотеки
  • 5 Критика
  • 6 Приклади
  • 7 Гумор
  • 8 Див. також
  • 9 Примітки
  • 10 Література
  • 11 Посилання

Історія розвитку

FORTRAN

Особливістю мови Fortran є вже те, що з розвитком вона змінила навіть свою назву, відображаючи той факт, що до версії Fortran 90 всі ключові слова повинні були бути написані великими літерами. Це змінилось в Fortran 90 і починаючи з цієї версії мову FORTRAN офіційно стали називати Fortran.

В кінці 1953 року Джон В. Бекус вніс пропозицію своєму начальству в IBM щодо розробки більш практичної альтернативи мови програмування для їх IBM 704 ЕОМ. В історичну команду по створенню мови FORTRAN увійшли також програмісти Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt, and David Sayre. Проект специфікації системи було завершено до середини 1954 року. Перший посібник для FORTRAN з'явився в жовтні 1956 року, а перший компілятор FORTRAN - в квітні 1957 року. Це був перший в світі оптимізуючий компілятор, оскільки клієнти погоджувалися використовувати мови програмування високого рівня тільки тоді, коли компілятор зможе генерувати код, продуктивність котрого буде близькою до коду, який може написати досвідчений програміст безпосередньо на асемблері. Незважаючи на скепсис та сумніви спільноти, компілятор швидко завоював визнання. Мова була позитивно прийнята вченими та інженерами для написання програм, котрі в свою чергу створили необхідні умови та ринок для створення компіляторів, які можуть генерувати більш швидкий і ефективний код. Включення комплексних чисел в фортран зробив цю мову особливо зручною також для технічних та інженерних програм, таких як електротехніка. До 1960 року версії FORTRAN були доступні для 709, 650, 1620, і 7090 IBM комп'ютерів. Зростання популярності FORTRAN спонукало виробників комп'ютерів забезпечити компіляторами FORTRAN свої машини, так що до 1963 року існувало вже понад 40 різних FORTRAN-компіляторів. З цих причин, FORTRAN вважається першою широко використовуваною мовою програмування, котра підтримувала найрізноманітніші комп'ютерні архітектури. Розвиток FORTRAN відбувався паралельно ранній еволюції технології компіляторів, і багато досягнень в галузі теорії та розробки компіляторів були спеціально мотивовані необхідністю створення ефективного коду для програм на FORTRAN.

До появи дисків та файлів, текстових редакторів та терміналів, програми найчастіше вводили за допомогою  перфокарт на клавіатурі перфоратора  на 80 знаків. Тобто, в результаті колода карт подавалася в спеціальний “кард-рідер” ЕОМ для компіляції. Тому оригінальний код ФОРТРАНу був в фіксованому форматі завдовжки 80 символів (стовпчиків). Не підтримувалась рекурсія та підпрограми.

FORTRAN II

IBM, FORTRAN II з'явився в 1958 році. Основними поліпшеннями були підтримка процедурного програмування, тобто підпрограми і функцій з параметрами, що передавалися за посиланням (by reference). Для підпрограм надали можливість доступу до глобальних змінних.

IBM також розробила FORTRAN III в 1958 році, що дозволяв писати  на асемблері в функціях, однак  цю версію так і не випустили  на ринок в якості готового  продукту.

Для машини IBM 1401 було створено інноваційний на той час 63-прохідний  компілятор Фортрану, який поміщався  всього у 8-кілобайт. Він зберігав код  програми в пам'яті та одночасно  поступово транслював її на машинну  мову - тобто це був перший в світі  інтерпретатор мови програмування. Наступний інтерпретатор (мови Pascal) появився тільки через 2 десятиліття.

FORTRAN IV

Починаючи з 1961 року, в результаті вивчення потреб клієнтів, компанія IBM розпочала розробку версії FORTRAN IV, в  якому були видалені машинно-залежні  особливості FORTRAN II (такі як READ INPUT TAPE), а  додано багато нових елементів, таких  як: логічний тип даних, логічні операції та логічний IF в якості альтернативи арифметичному IF. FORTRAN IV випустили в 1962 році, спочатку для комп'ютерів IBM 7030 ("Stretch"), а потім і для IBM 7090 та IBM 7094. До 1965 року, FORTRAN IV був "стандартом" відповідно до American Standards Association X3.4.3 FORTRAN Working Group[1] .

FORTRAN 66

Мабуть, найбільш значною  подією в ранній історії FORTRAN стало  рішення Американської асоціації  стандартів (ANSI зараз) сформувати комітет  для розробки "американського стандарту  Фортрану". Fortran 66 в березні 1966 року фактично став першою "стандартною для індустрії" версією FORTRAN. В Fortran 66 входили дуже багато удосконалень: main program, SUBROUTINE, FUNCTION, та BLOCK DATA програмні одниниці; типи INTEGER, REAL, DOUBLE PRECISION, COMPLEX та LOGICAL; COMMON, DIMENSION, and EQUIVALENCE інструкції; DATA для специфікації початкових значень змінних; INTRINSIC та EXTERNAL (тобто бібліотечних, зовнішніх) функцій; GOTO, визначений GOTO, та обчислюваний GOTO; логічний та арифметичний IF; DO цикли; READ, WRITE, BACKSPACE, REWIND, та ENDFILE ключові слова для послідовних операцій вводу-виводу; FORMAT для форматованого вводу-виводу; CALL, RETURN, PAUSE, та STOP; холеричні константи в DATA та FORMAT виразах, а також як аргументи для процедур; ідентифікатори з довжиною до 6 символів а також надано можливість запису коментарів в коді.

FORTRAN 77

Після оприлюднення стандарту FORTRAN 66, виробники компіляторів продовжували вносити на прохання користувачів ряд  розширень для мови, що змусило ANSI в 1969 році розпочати роботу з перегляду  прийнятого в 1966 році стандарту. Остаточні  проекти наступного стандарту були завершені в 1977 році, і офіційне затвердження стандарту FORTRAN 77 відбулося в квітні 1978 року. Новий стандарт FORTRAN 77 додавав  ряд істотних особливостей для вирішення  багатьох недоліків FORTRAN 66: блоки IF ... END IF, з опціональними ELSE ... ELSE IF, що значно полегшували структурне програмування; розширення DO циклів з параметричними виразами, негативним інкрементом та нульовим циклом; OPEN, CLOSE, та INQUIRE для роботи з файлами а також прямий доступ до файлів; IMPLICIT вираз та символьний тип даних CHARACTER з великою кількістю функцій для нього; PARAMETER для декларування констант; SAVE для постійних в пам'яті локальних змінних; загальні імена для вбудованих функцій та ін. У цій версії стандарту деякі інструкції були вилучені або оголошені застарілими (тобто такими, що будуть вилучені в наступних версіях мови Fortran).

Fortran 90

Зі значним запізненням, як наступник FORTRAN 77, відомий зараз  як Fortran 90 (а до цього, Fortran 8X) був випущений в якості стандарту ISO 1991 і стандарту ANSI в 1992 році. Це був досить масштабний перегляд попереднього стандарту, котрий також враховував нові тенденції та розвиток інших мов. Було додано безліч нових функцій, щоб відобразити значні зміни в практиці програмування:

  • нефіксована форма запису джерельного коду а також запис ключових слів малими літерами;
  • ідентифікатори змінних довжиною до 31 символу;
  • вбудовані однорядкові коментарі;
  • операції над масивами як ціле, та над вибірками масивів, що значно спрощувало математичні та інженерні обчислення;
  • рекурсивні процедури;
  • модулі для групування пов'язаних процедур і даних, щоб зробити їх доступними для інших частин програми, включаючи можливість обмежувати доступ тільки до певних частин модуля;
  • значно покращився механізм передачі аргументів, що дозволяло перевіряти інтерфейси функцій та процедур під час компіляції;
  • передбачено створення інтерфейсів користувачем для загальних процедур;
  • перевантаження операторів;
  • похідні/абстрактні типи даних; новий тип синтаксису для декларації типу даних та інших атрибутів змінних та констант;
  • динамічне виділення пам'яті за допомогою ALLOCATATE/ DEALLOCATE та ALLOCATABLE атрибутів;
  • POINTER для полегшення створення та обробки динамічних структур даних;
  • структуровані циклічні конструкції з END DO для завершення циклу, і CYCLE та EXIT для контролю та виходу з ітерацій циклу;
  • SELECT ... CASE для багатоходового вибору;
  • специфікації точності обчислень під контролем користувача;
  • нові та вдосконалені вбудовані процедури.

На відміну від попередніх версій, з версії стандарту Фортран 90 не було видалено жодного елементу, однак значну їх кількість оголосили  застарілими.

Fortran 95

Fortran 95 був незначною ревізією попереднього стандарту, в основному, щоб вирішити деякі невирішені нагальні питання з практики програмування за допомогою стандарту Fortran 90. Тим не менш, в Fortran 95 також було додано ряд розширень, зокрема,

  • з так званого високопродуктивного фортрану (High Performance Fortran): FORALL і вкладені інструкції WHERE, для полегшення векторизації;
  • PURE і елементарні ELEMENTAL процедури;
  • стандартна ініціалізація за замовчуванням компонентів похідних типів;
  • розширено можливості використання виразів ініціалізації;
  • доповнили явним роз'ясненням того, що пам'ять зайнята ALLOCATABLE масивами автоматично звільняється, коли вони виходять з своєї області видимості;
  • розширили число вбудованих функцій.

Деякі інструкції відзначені в Fortran 90 як застарілі, були видалені з Fortran 95: цикли з дійсними лічильниками, PAUSE та ін.

Важливим доповненням  до Fortran 95 стала доповідь ISO TR-15581. У цій специфікації визначено розширене використання ALLOCATABLE масивів, ще до наявності повністю Fortran 2003 сумісних компіляторів. Додали можливість для ALLOCATABLE масивів бути компонентами похідних типів, в списках формальних параметрів процедур, а також як значення, що повертаються функцією. Ще одним важливим доповненням до Fortran 95 була технічна доповідь ISO TR-15580: з обробкою винятків роботи з рухомою комою, неофіційно відомий як IEEE TR. В цій специфікації визначено також повну підтримку IEEE арифметики з рухомою комою. Fortran 95 також додав два додаткових модулі для підтримки рядків змінної довжини (Varying character strings (ISO/IEC 1539-2 : 2000)) та умовної компіляції (Conditional compilation — ISO/IEC 1539-3 : 1998).

Fortran 2003

Fortran 2003 став однією з основних ревізій, що додала в мову багато нових можливостей. Всесторонній огляд нових можливостей Fortran 2003 можна прочитати на офіційному сайті робочої групи Фортран[2]. Згідно з цією статтею, основні поліпшення для нової версії стандарту включають:

  • покращення для похідних типів- параметризовані похідні типи, покращено контроль доступності, поліпшення структури конструкторів та деструкторів;
  • об'єктно-орієнтоване програмування - розширення типу і успадкування, поліморфізм, динамічне виділення пам'яті для типів та прив'язаних до типу процедур;
  • покращення маніпуляцій з даними - динамічне виділення пам'яті для компонент, VOLATILE атрибут, явні специфікації типу в конструкторах масивів, удосконалення POINTER, розширені вирази для ініціалізації, і покращення вбудованих процедур;
  • операції читання/запису - асинхронна передача, потоковий доступ, визначені користувачем операції для похідних типів, контроль за округленням в специфікації FORMAT, іменовані константи для відкритих файлових потоків, FLUSH інструкція, регуляризація ключових слів та доступ до повідомлень про помилки;
  • POINTER для процедур;
  • підтримка IEEE із рухомою комою і обробка винятків (включаючи TR 15580);
  • взаємодія з мовою програмування C;
  • підтримка інтернаціоналізації: доступ до ISO 10646 4-байтових символів і вибір десяткової знаку чисел під час форматного читання/запису;
  • розширена інтеграція з основною операційною системою - доступ до аргументів командного рядка, змінні оточення, та повідомлення про помилки процесора.

Информация о работе Мова програмування Fortran