Новини високих технологій
» » Мова програмування Fortran - опис, основні команди і функції

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

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

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

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


Назва мови спочатку прописувалося великими літерами FORTRAN і використовувалося для позначення мовних версій аж до Fortran 77 на відміну від безкоштовних версій синтаксису, починаючи з Fortran 90. У стандарті Fortran 77 малі літери не є частиною мови, але більшість компіляторів підтримують їх, в доповнення до стандарту. Сьогодні мова програмування Fortran є домінуючим у програмуванні, що використовується в інженерних додатках. Тому важливо, щоб інженери-випускники могли читати і змінювати код Fortran. Час від часу, так звані експерти, які прогнозують, що мова втратить свою популярність і скоро перестане використовуватися взагалі. Ці прогнози завжди терпіли невдачу. "Фортран" - самий стійкий комп'ютерний мову програмування в історії. Одна з основних причин, по якій мова програмування Fortran вижив і виживе - це інерція програмного забезпечення. Після того, як компанія витратила багато ресурсів і, можливо, мільйони доларів на програмний продукт, навряд чи вона буде переводити програмне забезпечення на іншу мову.


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

Відмінність мовних версій

Етапи створення мовної платформи: У 1954-1957 роках перший компілятор був розроблений з нуля. В ті часи не було «мов високого рівня» (= HLL), більшість операційних систем були простими, а пам'ять була невеликою, близько 16 Kb. Перший компілятор працював на IBM 704. Ця мова HLL був набагато більш ефективним, ніж програмування на асемблері, і дуже популярним в свій час. У 1958 році видано ФОРТРАН II. У тому ж році був розроблений FORTRAN III, але так і не випущений в широке виробництво. У 1961 році був створений FORTRAN IV. Він містив поліпшення, такі як реалізація операторів COMMON EQUIVALENCE. У 1962 році комітет ASA почав розробку стандарту для об'єктно орієнтованої мови програмування Fortran. Це дозволило продавцю використовувати його в кожному новому комп'ютері. І цей факт зробив його ще більш популярним HLL, мову став доступний в системах Apple і TRS80. У 1967 році був випущений FORTRAN 66 перший у світі стандарт HLL. Публікація стандарту означала, що мова стала більш широко реалізованим, ніж будь-який інший. До середини 1970-х років практично кожен комп'ютер, міні або мэйнфрейм був постачений стандартним мовою FORTRAN 66. Мова використовував твердження if, goto-statement і spagethi-програми. Таке структуроване програмування стало популярним у 60-70-х роках. "Фортран" існував на перфокартах зокрема, з системою FMS, оптимізуючи розташування своїх джерел, до тих пір, поки Fortran 90 не ввів «вільний» синтаксис. В ньому код масиву Fortran починається з 7-го стовпця і не повинен перевищувати 72 тис. знаків. Слід також зазначити, що до Fortran 90 прогалини не мали значення між 7-м і 72-м стовпцем. Таким чином, цикл «DO I = 1.5» також може бути записаний «DOI = 15». З іншого боку, «DO I = 15» еквівалентно «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: write (*, *); 'Радіус r:'read (*, *) r; area = 314159 * r * r; write (*, *) 'Area ='; stop; end. Лінії, що починаються з «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. Знак оклику може з'являтися в будь-якому місці в рядку. Іноді заяву не вписується в один рядок, тоді можна розбити оператор на дві або більше рядків і використовувати знак продовження в позиції. Приклад: C23456789 - це демонструє положення стовпчика. «C» - наступний оператор проходить дві галузі фізичних ліній. Area = 314159265358979+ * 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. Список змінних повинен складатися з імен, розділених комами. Кожна змінна повинна бути оголошена рівно один раз. Якщо змінна не оголошена, 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). Правила для оператора параметрів: «Змінна», визначена в інструкції параметра, не є змінною, а константою, значення якої ніколи не може змінитися. «Змінна» може відображати не більше одного оператора параметра. Параметр оператор повинен прийти до першого виконуваного оператора Деякі вагомі причини використовувати параметр - допомагає зменшити кількість помилок, легко змінити константу, яка з'являється багато разів у програмі.

Логічні вирази

Логічні вирази можуть мати тільки значення .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 Речові константи:10-0252.0E63333E-1. E-нотація означає, що потрібно помножити на константу 10 підняту до потужності, наступній за «E». Отже, 2.0E6 становить два мільйони, а 3333 E-1 складає приблизно одну третину для констант, які більше, ніж найбільша реальний допустимий, або яке потребує високої точності, слід використовувати подвійну точність. Позначення ті ж, що і для реальних констант, за винятком того, що «E» замінюється на «D». Приклад:2.0 D-11D99. Тут 2.0 D-1 являє собою подвійну точність з однієї п'ятої, у той час як 1D99 - один, за яким слідують 99 нулів. Наступний тип - це складні константи. Вони позначаються парою констант (цілих або речових), розділених комою, укладених у дужки. Прикладами є:(2 -3)(199 Е-1). Перше число означає дійсну частина, а друге - уявну частину. П'ятий тип - це логічні константи. Вони можуть мати тільки одне з двох значень: .TRUE. .FALSE. Звертають увагу, що точки, які містять літери, обов'язкові до написання. Останній тип - це символьні константи. Вони найчастіше використовуються у вигляді масиву символів, званих рядком. Вони складаються з довільної послідовності символів, ув'язнених в апострофи (одинарні лапки): 'ABC' 'Anything goes!' 'It is a nice day' Рядкові та символьні константи чутливі до регістру. Проблема виникає, якщо потрібно мати реальний апостроф в самій рядку. В цьому випадку потрібно подвоїти апостроф: 'It"s a nice day', що означає 'Який чудовий день'

Умовні затвердження «if»

Важливими компонентами будь-якої мови програмування є умовні затвердження. Найбільш поширеним з таких тверджень у Fortran є оператор «if», який фактично має кілька форм. Найпростіший - це логічний вираз «if» в Fortran описі: if (логічний вираз) executable statement. Це має бути написано на одному рядку, наприклад, при визначенні абсолютного значення x: if (x .LT. 0) x = -x Якщо в «if» повинно бути виконано більше одного оператора, тоді слід використовувати наступний синтаксис: if (логічний вираз) 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. Результатом компіляції дається дещо загадкове ім'я«.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, багато програмісти і вчені бачать за ним майбутнє. Крім того, у світі досить виробників, які живуть за рахунок розробки сучасних компіляторів і непогано заробляють на цьому процесі.
Цікаво по темі
Як активувати Office 2013 на Windows 10: інструкції
Як активувати Office 2013 на Windows 10: інструкції
Як відомо, офісні набори будь-якого покоління, що випускаються корпорацією Microsoft, є платними програмними продуктами, хоча і можуть працювати без
Системи програмування: приклади, опис, особливості
Системи програмування: приклади, опис, особливості
Системи програмування забезпечують платформу для розробки прикладного програмного забезпечення і безпосередньо взаємодіють з комп'ютерним
Машинний код як мова програмування. Мова асемблера
Машинний код як мова програмування. Мова асемблера
Мова збірки (або асемблера) являє собою низькорівневий програмування мовою для комп'ютера або іншого програмованого обладнання, в якому існує
Список мов програмування за популярністю
Список мов програмування за популярністю
Програмування – це ціла наука, що дозволяє створювати комп'ютерні програми. Вона включає в себе величезну ...