Мова програмування Fortran - опис, основні команди і функції

Мова програмування Fortran - опис, основні команди і функції

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

Історичні віхи Fortran

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


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

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

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

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

Численні промислові коди були написані в 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:

write (*, *);


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

area = 3.14159 * r * r;

write (*, *) 'Area =';

stop;

end.


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

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

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

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

Правила розташування стовпчика

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

  • 1: Blank або "c" або "*" для коментарів.
  • 2-5: мітка оператора.
  • 6: продовження попереднього рядка.
  • 7-72: твердження.
  • 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;

Список змінних повинен складатися з імен, розділених комами. Кожна змінна повинна бути оголошена рівно один раз. Якщо змінна не оголошена, F 77 використовує набір неявних правил для встановлення типу. Це означає, що всі змінні, що починаються з літер "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). Перше число позначає дійсну частину, а друге - уявну частину.

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

.TRUE.

.FALSE.

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

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

'ABC'

'Anything goes!'

'It is a nice day'

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

Умовні твердження "if"

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

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

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

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

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

Потік виконання зверху вниз. Умовні вирази оцінюються послідовно, поки не буде знайдено справжнє значення. Потім виконується відповідний код, і елемент керування переходить до наступного оператора після 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

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

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

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

Методи моделювання виробництва

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

Об 'єктно орієнтовані мови програмування SimceFortran порівнюються зі звичайною науковою мовою програмування під назвою FORTRAN. Типова військова імітаційна модель запрограмована як в SIMCE, так і в FORTRAN. Програма SIMCEвиявилася на 24% коротшою, ніж версія FORTRAN.

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

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

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

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