Fortran було розроблено фірмою. Перші мови програмування високого рівня

Мова програмування Fortran використовується переважно для наукових обчислень. Винайдений у 1954 році, це найстаріша мовапрограмування високого рівня, за яким пішов Lisp (1958), Algol (1958) та COBOL (1959). Число наукових бібліотек, написаних на "Фортрані", та створення спеціальних перекладачів-компіляторів дозволяють використовувати мову і сьогодні. Крім того, були створені множинні калькулятори для векторизації, співпроцесорів, паралелізму, які вкраплюють цю мову для використання в промислове виробництво сучасного світу.

Джон Бекус, радіотехнік IBM, опублікував у 1954 році статті під заголовками "Попередній звіт", "Специфікації для IBM Matmal Transmula TRANslating System", які започаткували термін FORTRAN. Потім потрібно ще два роки зусиль цілої команди, яку він очолив, для написання першого компілятора мови програмування Fortran (25 000 рядків для IBM 704).

Назва мови спочатку прописувалася великими літерами FORTRAN і використовувалося для позначення мовних версій аж до Fortran 77, на відміну безкоштовних версійсинтаксису, починаючи з Fortran 90. У стандарті Fortran 77 малі літерине є частиною мови, але більшість компіляторів підтримують їх, крім стандарту.

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

Ці прогнози завжди зазнавали невдачі. "Фортран" - найстійкіший комп'ютерна мовапрограмування історія. Одна з основних причин, через яку мова програмування Fortran вижила і виживе - це інерція програмного забезпечення. Після того, як компанія витратила багато ресурсів і, можливо, мільйони доларів на програмний продукт, навряд чи вона перекладатиме програмне забезпечення іншою мовою.

Основною перевагою Fortran є те, що він стандартизований міжнародними органами ANSI та ISO. Отже, якщо програма написана в ANSI, вона буде запущена на будь-якому комп'ютері з компілятором Fortran 77. Це важлива інформація. Таким чином, програми об'єктно орієнтованої мови програмування Fortran існують на різних програмних пристроях.

Етапи створення мовної платформи:

  1. У 1954-1957 роках перший компілятор розробили з нуля. У ті часи не було "мов високого рівня" (= HLL), більшість операційних систембули простими, а пам'ять була невеликою, близько 16 Kb. Перший компілятор працював на IBM 704. Ця мова HLL була набагато ефективнішою, ніж програмування на асемблері, і дуже популярною свого часу.
  2. У 1958 році видано ФОРТРАН II. У тому ж році було розроблено FORTRAN III, але так і не випущено у широке виробництво.
  3. У 1961 році було створено FORTRAN IV. Він містив покращення, такі як реалізація операторів COMMON та EQUIVALENCE.
  4. У 1962 році комітет ASA розпочав розробку стандарту для об'єктно орієнтованої мови програмування Fortran. Це дозволило продавцеві використовувати його у кожному новому комп'ютері. І цей факт зробив його ще більш популярним HLL, мова стала доступна в системах Appleта TRS80.
  5. У 1967 був випущений FORTRAN 66, перший у світі стандарт HLL. Публікація стандарту означала, що мова стала більш широко реалізованою, ніж будь-яка інша. До середини 1970-х практично кожен комп'ютер, міні або мейнфрейм був забезпечений стандартною мовою FORTRAN 66. Мова використовувала затвердження if, goto-statement і spagethi-програми. Таке структуроване програмування стало популярним у 60-70-х роках.
  6. "Фортран" існував на перфокартах зокрема, із системою FMS, оптимізуючи розташування своїх джерел доти, доки Fortran 90 не ввів "вільний" синтаксис. У ньому код масиву Fortran починається з 7 стовпця і не повинен перевищувати 72 тис. знаків.

Слід також зазначити, що до Fortran 90 прогалини не мали значення між 7-м та 72-м стовпцем. Таким чином, цикл DO I = 1.5 також може бути записаний DOI = 1,5. З іншого боку, "DO I = 1,5" еквівалентно "DOI = 1.5".

Численні промислові коди були написані в Nastran, NAG та IMSL-Fortran бібліотеці. Сумісність нових версій із попередніми важлива. З цієї причини Fortran 90 повністю сумісний з Fortran 77. Однак у наступних версіях стандарту вже було введено несумісності.

Незабаром відбулися досконаліші мови Fortran 90 та Fortran 95, оновлені до поточного стандарту Fortran-2003. При тому, що сучасні компілятори працюють необмежено у всіх поточних версіях Windowsі навіть підтримують 64-розрядні процесори. Тим часом, виробники визнали тенденцію часу та пропонують компілятори для Linux у вигляді об'єктно орієнтованої мови програмування Actor Fortran.

Передумови використання мови програмування

Потрібно розуміти, що Fortran, як і раніше, є широко використовуваною мовою програмування і в основному застосовується в області відкриттів. Класичні області застосування, наприклад, у фізиці або техніці, де виконуються великі та складні математичні обчислення. Вони дуже корисні великі математичні бібліотеки, які є різних компіляторів. Підбивши підсумок, можна стверджувати, що сьогодні мова Fortranяк і раніше використовується з низки причин:

  • Наявність численних функціональних бібліотек, які розробляються протягом багатьох років.
  • Наявність програмного забезпечення у "Фортрані", яке потребує дуже важливих ресурсів для розвитку, коли перехід іншою мовою вважається занадто дорогим.
  • Наявність потужних компіляторів із вбудованими функціями Fortran, які виробляють дуже швидкі виконувані файли.
  • Мова доступніша для винахідника, який не мав спеціалізованого комп'ютерного курсу.

Багато наукових програм тепер написані мовами C і C++, компілятори яких доступні на більшості машин. Інші скомпільовані мови іноді використовуються для наукових обчислень, особливо для таких програм, як Scilab або Matlab. Останні також включають бібліотеки BLAS та LAPACK, розроблені у програмуванні Fortran. Matlab спочатку була програмою в Fortran, що розповсюджується в університетах та дослідницьких центрах.

Хоча Tom Lahey є «єдиним» генеральним компілятором, Lahey Computer Systems продовжує використовуватися багатьма програмістами. Lahey вже кілька років працює з Fujitsu, Lahey концентрується на синтаксичному аналізаторі Fortran, а Fujitsu – на генераторі коду. Поточний Compiler Suite для Windows називається Lahey Fujitsu Fortran 95 (LF95) і доступний у різних версіях, деякі з яких також інтегруються з Visual Studio.NET 2003.

Існує також дешева версія LF95 Express без власної IDE. Поточна версія – 7.1. в Linux викликається компілятором Lahey / Fujitsu Fortran 95 v6.2 для Linux і доступна в двох різних версіях. Наприклад, версія Proвключає сумісність з OpenMP v2.0, простий графічний двигун Winteracter Starter Kit, математичну бібліотекуі наукову бібліотекупідпрограм Fujitsu 2

Іншим виробником є ​​Absoft. Компілятори та C++ існують не тільки для Windows та Linux, але також і для OS X на Macintosh. Ці компілятори цікаві розробникам, які потребують чи хочуть підтримувати всі три платформи. На жаль, Absoft розрізняє 32- та 64-розрядні версії під Linux, в даний час використовується версія 10.0 Fortran 95 для 64-розрядної Linux.

Відносно новим ринку є пакет EKOPath Compiler Suite. Це складається з компіляторів C++ та середовища розробки Fortran для Linux, які також доступні окремо та в основному призначені для 64-розрядних AMDusers. Він також працює на Intel EM64T. Також Microsoft спробувала знайти «дешевий ринок» Fortran і вивела на ринок Microsoft Powerstation.

Можливо, ринок був занадто малий для софтверного гіганта, але Digital зайняв частину коду у 1997 році та використав свій досвід роботи з компіляторами Digital Unix та OpenVMS. Це було народження ще дуже успішного Digital Visual Fortran. У якийсь момент Digital потім перейшов у Compaq, компілятор був доопрацьований до поточної версії Compaq Visual Fortran (CVF) v6.6.

На додаток до "нормальних" 32-розрядних платформ існують різні 64-бітові компілятори, наприклад, для Intel Itanium та Intel EM64T. Хоча вони не є «невідкладними» для обсягу поставки, вони доступні для безкоштовного завантаженнячерез веб-систему підтримки Intel Premier.

Після одноразової, дещо громіздкої реєстрації можна використовувати її протягом року, з урахуванням нових оновлень кожні кілька тижнів. Навіть старіші версії залишатимуться доступними.

Програма Fortran є послідовністю рядків тексту. Текст повинен слідувати певному синтаксису. Наприклад: коло радіусу r, площею c.

Ця програма зчитує реальний радіус та визначає площу кола з радіусом r:

"Радіус r:"read(*, *) r;

area = 3.14159*r*r;

write (*, *) "Area =";

Лінії, що починаються з «C», є коментарями і не мають жодної мети, окрім як зробити програму більш читаною для людей. Спочатку всі програми Fortran були написані в великих літерах. Більшість програмістів тепер пишуть нижній регістр, оскільки це більш розбірливо.

Програма Fortran зазвичай складається з основної програми чи драйвера та кількох підпрограм, процедур чи підпрограм. Структура основної програми:

  • назва програми;
  • декларації;
  • заяви;
  • стоп;
  • кінець.

Виділені курсивом не повинні сприйматися як буквальний текст, а скоріше як Загальний опис. Оператор зупинки є необов'язковим і може здаватися зайвим, оскільки програма зупиниться, коли вона досягне кінця в будь-якому випадку, але рекомендується завжди завершувати програму за допомогою оператора зупинки, щоб наголосити, що потік виконання припиняється.

Правила позиції стовпця

Fortran 77 не є мовою вільного формату, але має дуже строгий набір правил для форматування вихідного коду. Найбільш важливими правиламиє правила розташування стовпців:

  • Col. 1: Blank або "c" або "*" для коментарів.
  • Col. 2-5: мітка оператора.
  • Col. 6: продовження попереднього рядка.
  • Col. 7-72: затвердження.
  • Col. 73-80: Номер послідовності.

Рядком Fortran, що починається з літери "c" або зірочкою в першому стовпці, є коментар. Коментарі можуть з'являтися у будь-якому місці програми. Добре написані, вони мають вирішальне значення для читання програми. Комерційні коди Fortran часто містять близько 50% коментарів. Також можна зіткнутися з програмами, які використовують знак оклику(!). Це дуже нестандартно у Fortran 77, але дозволено у Fortran 90.

Знак оклику може з'являтися в будь-якому місці в рядку. Іноді заява не вписується в один рядок, тоді можна розбити оператора на два або більше рядків і використовувати знак продовження в позиції.

  1. C23456789 - це показує положення стовпця.
  2. "C" - наступний оператор проходить дві області фізичних ліній.
  3. Area = 3.14159265358979+ * r * r.

Порожні прогалини ігноруються, починаючи з "Фортрану 77". Тому, якщо видалити всі прогалини в Fortran 77, програма, як і раніше, синтаксіально правильна, хоча при цьому майже нечитана для операторів.

Імена змінних у Fortran складаються з 1-6 символів, вибраних з букв a-zта цифр 0-9. Першим символом має бути буква. Fortran 90 припускає імена змінних довільної довжини. Fortran 77 не проводить відмінності між верхнім та нижнім регістром, насправді він припускає, що всі вхідні дані верхнім регістром. Тим не менш, майже всі компілятори F 77 прийматимуть малі літери. Кожна змінна має бути визначена в оголошенні. Це встановлює тип змінної. Найбільш поширеними списками змінних є:

  • integer;
  • real;
  • double precision;
  • complex;
  • logical;
  • character.

Список змінних повинен складатися з імен, розділених комами. Кожна змінна має бути оголошена рівно один раз. Якщо змінна не оголошена, F77 використовує набір неявних правил для встановлення типу. Це означає, що всі змінні, що починаються з букв «in», є цілими числами, а решта - реальними. Багато старих програм F 77 використовують ці неявні правила, але програмісти не повинні цього робити, оскільки ймовірність помилок у програмі різко зростає, якщо вони постійно оголошують змінні.

Фортран 77 має лише один тип для цілісних змінних. Цілі числа зазвичай зберігаються у вигляді 32-бітових (4 байти) змінних. Тому всі цілі численні змінні повинні приймати значення в діапазоні [-m, m], де m становить приблизно 2 * 10 9 .

F 77 має два різних типівдля змінних з плаваючою комою, які називаються реальною подвійною точністю. Деякі чисельні обчислення вимагають дуже високої точності, і слід використовувати подвійну точність. Зазвичай реальна – 4-байтова змінна, а подвійна точність – 8 байтів, але це залежить від машини.

Нестандартні версії "Фортран" використовують синтаксис real*8 для позначення 8-байтових змінних з плаваючою комою. Деякі константи з'являються багато разів у програмі. Тому бажано визначити їх лише один раз, на початку програми. Для цього використовується оператор параметра. Це також робить програми більш читаними. Наприклад, програма площі кола має бути написана так.

Синтаксис оператора параметра (name = constant, ..., name = constant). Правила для оператора параметрів:

  1. "Змінна", визначена в інструкції параметра, не є змінною, а константою, значення якої ніколи не може змінитися.
  2. "Змінна" може відображати не більше одного оператора параметра.
  3. Параметр оператор повинен прийти до першого оператора, що виконується.

Деякі вагомі причини використовувати параметр - допомагає зменшити кількість друкарських помилок, легко змінити константу, яка з'являється багато разів у програмі.

Логічні виразиможуть лише значення.TRUE. або.FALSE. та можуть бути сформовані шляхом порівняння з використанням реляційних операторів.

Не можна використовувати символи, такі як «<» или «=» для сравнения в F 77, но можно использовать правильную двухбуквенную аббревиатуру, заключенную точками. Однако такие символы разрешены в Fortran 90.

Логічні висловлювання можуть бути об'єднані логічними операторами AND, OR, NOT, які мають очевидне значення. Значення істини можуть зберігатися у логічних змінних. Призначення аналогічне до арифметичного призначення.

Приклад: logical a, ba = .TRUE.b = a .AND. 3. LT. 5/2

Порядок пріоритетності дуже важливий. Правило у тому, що спочатку обчислюються арифметичні висловлювання, потім реляційні оператори і, нарешті, логічні оператори. Отже, b буде присвоєно. FALSE. У наведеному вище прикладі логічні змінні рідко використовуються в Fortran, але часто використовуються в умовних операторах, таких як оператор «if».

Константа та призначення

Найпростіша форма висловлювання є константою. Існує 6 типів констант, що відповідають 6 типам даних. Ось деякі цілі константи:10-10032767+15

Речовинні константи: 1,0-0,252.0E63.333E-1.

E-нотація означає, що потрібно помножити константу на 10, підняту до потужності, наступної за "E". Отже, 2.0E6 становить два мільйони, а 3,333E-1 становить приблизно одну третину для констант, які більші, ніж найбільше реальне допустиме, або яке вимагає високої точності, слід використовувати подвійну точність. Позначення ті самі, що й реальних констант, крім те, що «E» замінюється на «D».

Приклад:2.0D-11D99.

Тут 2.0D-1 є подвійною точністю з однією п'ятою, у той час як 1D99 - один, за яким слідують 99 нулів.

Наступний тип – це складні константи. Вони позначаються парою констант (цілих або речових), розділених комою та ув'язнених у дужки.

Прикладами є: (2, -3) (1,9,9 Е-1). Перше число означає дійсну частину, а друге - уявну частину.

П'ятий тип – це логічні константи. Вони можуть мати лише одне з двох значень:

Звертають увагу, що точки, що містять літери, є обов'язковими до написання.

Останній тип – це символьні константи. Вони найчастіше використовуються у вигляді масиву символів, які називають рядком. Вони складаються з довільної послідовності символів, укладених в апострофи (одинарні лапки):

"Anything goes!"

"It is a nice day"

Рядкові та символьні константи чутливі до регістру. Проблема виникає, якщо потрібно мати реальний апостроф у самому рядку. В цьому випадку потрібно подвоїти апостроф: "It""s a nice day", що означає "Який чудовий день"

Важливими компонентами будь-якої мови програмування є умовні твердження. Найбільш поширеним із таких тверджень у Fortran є оператор «if», який фактично має кілька форм.

Найпростіший - це логічний вираз "if" у Fortran описі: if (logical expression) executable statement.

Це має бути написано на одному рядку, наприклад, для визначення абсолютного значення x:

if (x .LT. 0) x = -x

Якщо в "if" має бути виконано більше одного оператора, тоді слід використовувати наступний синтаксис: if (logical expression) thestatementsendif.

Потік виконання зверху донизу. Умовні висловлювання оцінюються послідовно, доки знайдено справжнє значення. Потім виконується відповідний код, елемент управління переходить до наступного оператора після end «if».

Оператори if можуть бути вкладені у кілька рівнів. Щоб забезпечити читання, важливо використовувати правильний відступ. Ось приклад:

if (x .GT. 0) thenif (x .GE. y) thenwrite(*,*) "x is positive and x >= y"elsewrite(*,*) "x is positive but x< y"endifelseif (x .LT. 0) thenwrite(*,*) "x is negative"elsewrite(*,*) "x is zero"endif

Програмісти повинні уникати вкладеності багатьох рівнів тверджень «if», оскільки йому буде важко дотримуватися.

Можна використовувати будь-яку робочу станцію Unix з компілятором F 77. Досвідчені програмісти рекомендують використовувати Sun або Dec.

Програма Fortran складається з простого тексту, який дотримується певних правил синтаксису. Це називається вихідним кодом. Програмісти використовують редактор для запису вихідного коду. Найбільш поширеними редакторами в Unix є emacs і vi, але вони можуть бути трохи складними для користувачів-початківців. Можна використовувати простіший редактор, наприклад xedit, який працює під X-вікнами.

Після того, як написана програма Fortran, її зберігають у файлі з розширенням ".f" або ".for" і переводять програму в машиночитаему форму. Це робиться за допомогою спеціальної програми, яка називається компілятором. Компілятор Fortran 77 зазвичай називають f77. Результату компіляції дається кілька загадкове ім'я «a.out» за замовчуванням, але можна вибрати інше ім'я, якщо потрібно. Щоб запустити програму, просто вводять ім'я файлу, що виконується, наприклад, «a.out». Компілятор переводить вихідний код в об'єктний код, а компонувальник або завантажувач - виконуваний файл. Як видно, ця процедура зовсім не складна і доступна для будь-якого користувача.

Моделювання одна із найчастіше використовуваних методів виробництва та інших систем, що є на сучасних підприємствах. Більшість імітаційних моделей побудовано за допомогою об'єктно орієнтованої мови програмування Actor Fortran, або пакета програмного забезпечення для моделювання, написаного традиційною мовою. Ці інструменти мають обмеження. Об'єктно-орієнтована технологія виявляла все більше застосування у багатьох галузях та обіцяє більш гнучкий та ефективний підхід до моделювання бізнес-систем.

Програмування Simula Fortran порівнюються із звичайною науковою мовою програмування під назвою FORTRAN. Типова військова імітаційна модель запрограмована як у SIMULA, так і в FORTRAN. Програма SIMULA виявилася на 24% коротшою, ніж версія FORTRAN.

Версія SIMULA також більш проста і дає кращу картину моделі, що моделюється. З іншого боку, час виконання для виробничих тиражів на 64% більше з об'єктно-орієнтованою мовою програмування Simula Fortran. Зважування плюсів і мінусів показує, що SIMULA буде все більш прибутковим програмним забезпеченням, з більш високими витратами на персонал і більш низькими витратами на комп'ютер.

CUDA показує, як високопродуктивні розробники програм можуть використовувати можливості графічних процесорів з використанням Fortran, звичної мови для наукових обчислень та тестування продуктивності суперкомп'ютерів. Автори не припускають жодного попереднього досвіду паралельних обчислень і охоплюють лише основи, а також використовують найкращі практики. Ефективність обчислення графічних процесорів із використанням CUDA Fortran забезпечується цільовою архітектурою графічного процесора.

CUDA Fortran для вчених та інженерів визначить інтенсивні обчислювальні частини коду та змінить код для управління даними, паралелізму та оптимізації продуктивності. Все це робиться у "Фортрані", без необхідності переписувати програму іншою мовою. Кожна концепція ілюструється фактичними прикладами, тому можна одразу оцінити продуктивність коду.

Можливо, колись глобальна корпорація остаточно глобалізується і вирішить, що "Фортран" більше не потрібен, проте, не тепер. Завдяки нинішнім можливостям сучасного Fortran багато програмістів і науковців бачать за ним майбутнє. Крім того, у світі достатньо виробників, які живуть за рахунок розробки сучасних компіляторів та непогано заробляють на цьому процесі.

Історія створення мови програмування Фортран. Існуючі стандарти. Версія мови програмування Фортран.

Програми перших ЕОМ програмісти писали мовами машинних команд. Це дуже трудомісткий та тривалий процес. Проходив значний час між початком складання програми та початком її використання. Вирішити цю проблему можна було лише шляхом створення засобів автоматизації програмування.
Першими "інструментами", які заощаджували працю програмістів, стали підпрограми. У серпні 1944 року для релейної машини "Марк-I" під керівництвом Грейс Хоппер (жінка-програміст, морський офіцер ВМФ США) було написано першу підпрограму для обчислення sinx.
Не одну Грейс Хопер хвилювала проблема полегшення праці програмістів. У 1949 році Джон Моучлі (один із творців ЕОМ ENIAC) розробив систему SHORT Code, яку можна вважати попередницею мов програмування високого рівня. Програміст записував розв'язувану задачу у вигляді математичних формул, перетворював формули на дволітерні коди. Надалі спеціальна програма переводила ці коди у двійковий машинний код. Таким чином, Дж. Моучлі розробив один із перших примітивних інтерпретаторів. А 1951 року Г. Хоппер створила перший компілятор А-0. Нею ж уперше було запроваджено цей термін.

Перші мови високого рівня: Кобол та Фортран
У 50-ті роки минулого століття група під керівництвом Г. Хоппер приступила до розробки нової мови та компілятора В-0. новий мовадозволив би програмувати мовою, близькою до звичайної англійської. Розробники мови обрали близько 30 англійських слів, для розпізнавання яких Г. Хоппер вигадала спосіб, що зберігся в операторах майбутніх мов програмування: кожне слово містить неповторну комбінацію з першої та третьої літер. Завдяки цьому компілятор під час створення машинного коду програми може ігнорувати решту літер у слові.
Необхідність появи такої системи, мова якої наближена до розмовної, Г. Хоппер пов'язувала з тим, що область застосування ЕОМ будуть розширюватися, у зв'язку з чим зростатиме і коло користувачів. За словами Г. Хоппер, слід залишити спроби "перетворити їх усіх на математиків".
У 1958 році система В-0 отримала назву FLOW-MATIC і була орієнтована на обробку комерційних даних. У 1959 році було розроблено мову COBOL (Common Business Oriented Language) (Кобол) машинно незалежну мова програмуваннявисокого рівня для відповідного транслятора з цієї мови. Консультантом під час створення мови COBOL знову виступила Г. Хоппер.
В 1954 публікується повідомлення про створення мови FORTRAN (FORmula TRANslation) (Фортран). Місцем народження мови стала штаб-квартира фірми IBM у Нью-Йорку. Одним із головних розробників є

Джон Бекус. Він став автором НФБ (нормальна форма Бекуса), яка використовується для опису синтаксису багатьох мов програмування. У той же період у європейських країнах та в СРСР популярною стає мова ALGOL. Як і FORTRAN, він орієнтувався на математичні завдання. У ньому було реалізовано передову на той час технологію програмування структурне програмування.

Фортран у СРСР.

Фортран у СРСР виник пізніше, ніж Заході, оскільки спочатку ми більш перспективним мовою вважався Алгол. У запровадженні Фортрана велику роль зіграло спілкування радянських фізиків зі своїми колегами з CERN, де у 1960-х роках майже всі розрахунки велися з використанням програм на Фортрані.

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

Стандарти

Мова піддавалася стандартизації в рамках ANSI та ISO

Були розроблені стандарти - Фортран 66, Фортран 77, Фортран 90, Фортран 95, Фортран 2003 та Фортран 2008.

Стандартизація мов програмування створює передумови підвищення мобільності програмного забезпечення для комп'ютерів будь-якої архітектури. Стандартизація Фортрана є однією з причин довготривалого проживання мови, оскільки саме завдяки стандартизації забезпечена можливість використання величезного фонду прикладних програм, які створені за десятиліття існування мови.

Фортран – жорстко стандартизована мова, саме тому він легко переноситься на різні платформи. Існує кілька міжнародних стандартів мови:

FORTRAN IV(Пізніше покладений в основу FORTRAN 66 (1966);

FORTRAN 77(1978) безліч покращень: рядковий тип даних та функції для його обробки, блокові оператори IF, ELSE IF, ELSE, END IF, оператор включення фрагмента програми INCLUDE і т.д.

Fortran 90(1991) значно перероблено стандарт мови. Введено вільний формат написання коду. З'явилися додаткові описи IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST; керуючі конструкції DO … END DO, DO WHILE, CYCLE, SELECT CASE, WHERE; робота з динамічною пам'яттю (ALLOCATE, DEALLOCATE, NULLIFY); програмні компоненти MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT. З'явилися нові вбудовані функції, в першу чергу для роботи з масивами в мові з'явилися елементи ОВП

Fortran 95(1997) – корекція попереднього стандарту Fortran 2003(2004) подальший розвиток підтримки ОВП у мові. Взаємодія з операційною системою Введено оператора та конструкцію FORALL, що дозволяють більш гнучко, ніж оператор та конструкція WHERE, присвоювати масиви та замінювати громіздкі цикли. FORALL дозволяє замінити будь-яке присвоєння перерізів або оператора та конструкцію WHERE, зокрема, забезпечує доступ до діагоналі матриці. Цей оператор вважається перспективним у паралельних обчисленнях, сприяючи ефективнішому, ніж цикли, здійсненню розпаралелювання.

Fortran 2003(2004) Подальший розвиток підтримки ОВП у мові. Взаємодія із операційною системою. Додані також такі можливості: 1. Асинхронне введення-виведення даних 2. Засоби взаємодії з мовою. 3. Удосконалення динамічного розміщення даних. Fortran 2008(2010) Стандартом передбачається підтримка засобами мови паралельних обчислень (Co-Arrays Fortran). Також передбачається збільшити максимальну розмірність масивів до 15, додати спеціальні математичні функції і ін.

Версія мови програмування Фортран

Програмісти, які розробляли програми виключно на асемблері, висловлювали серйозний сумнів у можливості появи високопродуктивної мови високого рівня, тому основним критерієм розробки компіляторів Фортрана була ефективність виконуваного коду. Для цієї мови було створено величезну кількість бібліотек, починаючи від статистичних комплексів та кінчаючи пакетами керування супутниками, тому Фортран продовжує активно використовуватись. Є стандартна версія Фортрана WF (High Performance Fortran) для паралельних суперкомп'ютерів з безліччю процесорів.

Кобол (Кобол).Це компілювана мова для застосування в економічній галузі та вирішення бізнес завдань, розроблений на початку 60-х років. Він відрізняється великою «багатослівністю» – його оператори іноді виглядають як звичайні англійські фрази. У Коболі було реалізовано дуже потужні засоби роботи з великими обсягами даних, що зберігаються на різних зовнішніх носіях. Цією мовою створено багато додатків, які активно експлуатуються і сьогодні.

Algol (Алгол).Компільована мова, створена в 1960 році. Він був покликаний замінити Фортран, але через складнішу структуру не набув широкого поширення. У 1968 році була створена версія Алгол 68, яка за своїми можливостями і сьогодні випереджає багато мов програмування, проте через відсутність досить ефективних комп'ютерів для неї не вдалося своєчасно створити хороші компілятори.

Pascal (Паскаль).Мова Паскаль, створений наприкінці 70-х років основоположником безлічі ідей сучасного програмування Ніклаусом Віртом, багато в чому нагадує Алгол, але в ньому посилено низку вимог до структури програми та є можливості, що дозволяють успішно застосовувати його при створенні великих проектів.

Basic (Бейсік).Для цієї мови є і компілятори, і інтерпретатори, а за популярністю він посідає перше місце у світі. Він створювався в 60-х роках як навчальна мова і дуже простий у вивченні. Це одна з перспективних мов програмування.

З (Сі).Ця мова була створена в лабораторії Bell і спочатку не розглядалася як масова. Він планувався для заміни асемблера, щоб мати можливість створювати такі ж ефективні та компактні програми, і водночас не залежати від конкретного типу процесора. Цією мовою в 70-ті роки написано безліч прикладних та системних програм та ряд відомих операційних систем (Unix).

Java (Джава, Ява).Ця мова була створена компанією Sun на початку 90-х років на основі Сі++. Він покликаний спростити розробку додатків на основі Сі + + шляхом виключення з нього всіх низькорівневих можливостей. Але головна особливість цієї мови - компіляція над машинний код, а платформно незалежний байт-код (кожна команда займає один байт). Цей байт-код може виконуватись за допомогою інтерпретатора – віртуальної Java-машини (Java Virtual Machine), версії якої створені сьогодні для будь-яких платформ. Завдяки наявності безлічі Java-машин програми на Java можна переносити не тільки на рівні вихідних текстів, але і на рівні двійкового байт-коду, тому за популярністю мова Ява сьогодні посідає друге місце у світі після Бейсіка.

Останнім часом набули поширення системи програмування, орієнтовані створення Windows-додатків:

· пакет Borland Delphi (Дельфі) - блискучий спадкоємець сімейства компіляторів Borland Pascal, що надає якісні та дуже зручні засоби візуальної розробки. Його виключно швидкий компілятор дозволяє ефективно та швидко вирішувати практично будь-які завдання прикладного програмування.

· пакет Microsoft Visual Basic - зручний та популярний інструмент для створення Windows-програм з використанням візуальних засобів. Містить інструментарій для створення діаграмі презентацій.

· пакет Borland C++ - один із найпоширеніших засобів для розробки DOS та Windows додатків.

У 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'у як до «копали». Едсгер Дейкстра, в'їдливо зазначав, що навчання студентів цій мові має прирівнюватися до серйозного злочину.

Середина 50-х років. характеризується стрімким прогресом у сфері програмування. Роль програмування в машинних кодах стала зменшуватися, почали з'являтися мови програмування нового типу, які у ролі посередника між машинами і програмістами. Настав час другого та третього поколінь мов програмування

Із середини 50-х років. XX ст. почали створювати перші мови програмування високого рівня (high-levellanguage). Ці мови були машини незалежними (не прив'язані до певного типу ЕОМ).

Але для кожної мови були розроблені власні компілятори – програма, яка виконує компіляцію.

Компіляція - трансляція програми, складеної вихідною мовою високого рівня, в еквівалентну програму низькорівневою мовою, близькому машинному коду (абсолютний код, об'єктний модуль, іноді на мову асемблера)

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

Перша мова високого рівня була створена в період з 1954 до 1957 року групою програмістів під керівництвом Джона Бекуса в корпорації IBM і це стало наступним етапом розвитку мов програмування. Це була мова програмування FORTRAN. Він призначався для наукових та технічних розрахунків. Назва Fortran є скороченням від FORmulaTRANslator (перекладач формул).

Історія мови

Наприкінці 1953 року Джон Бекус запропонував почати розробку ефективної альтернативи асемблеру для програмування на ПК IBM 704. Вже до середини 1954 року була закінчена чернова специфікація мови Fortran. Перший посібник для Fortran з'явився в жовтні 1956 разом з першим компілятором, поставленим у квітні 1957. Компілятор був оптимізуючим, тому що клієнти відмовлялися використовувати мову програмування високого рівня, яка не могла генерувати код з продуктивністю нижче, ніж у асемблера.

На той час співтовариство ставилося скептично до нового способу програмування і не вірили в те, що Fortran дозволить програмувати швидше та ефективніше. За словами самого Джона Бекуса, велика частина його роботи була спрямована на те, щоб «бути лінивим». Йому дуже не подобалося писати програми під IBM 701 на асемблері.

Мова була широко прийнята вченими для написання програм з інтенсивними обчисленнями. Включення комплексного типу даних зробило його особливо підходящим до технічних додатків.

До 1960 існували версії Fortran для комп'ютерів IBM 709, 650, 1620, 7090. Його велика популярність спонукала конкуруючих виробників комп'ютерів створювати компілятори Fortran для своїх комп'ютерів. Таким чином, вже до 1963 року існувало понад 40 компіляторів для різних платформ. Саме з цього Fortran вважають першою мовою програмування, що широко використовується.

Фортран у СРСР

Фортран у СРСР виник пізніше, ніж Заході, оскільки спочатку ми більш перспективним мовою вважався Алгол. У запровадженні Фортрана велику роль зіграло спілкування радянських фізиків зі своїми колегами з CERN, де у 1960-х роках майже всі розрахунки велися з використанням програм на Фортрані.

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

Сучасні Фортран. Переваги мови

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

Ймовірно, якщо ви хочете швидко щось порахувати, то Фортран буде одним із найкращих варіантів. Мова для цього саме й винаходила.

Його структура сприяє тому, що компілятор може добре оптимізувати обчислення.

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