Коли була створена мова Фортран

Коли була створена мова Фортран



Фортран

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

Більшість таких бібліотек є фактично надбанням людства: вони доступні у вихідних кодах, добре документовані, налагоджені та дуже ефективні. Тому змінювати, а тим більше переписувати їх іншими мовами програмування невигідно, незважаючи на те, що регулярно робляться спроби автоматичного конвертування FORTRAN-коду на сучасні мови програмування.

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

Еволюція стандартів мови

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

  1. Введені оператори відкриття та закриття файлу (OPEN, CLOSE) та виведення на стандартний пристрій – PRINT.
  2. Додано рядковий тип даних та функції для його обробки.
  3. Введено блоковий оператор IF та конструкція IF THEN – ELSE IF THEN – END IF, а також оператор включення фрагмента програми INCLUDE.
  4. Введено можливість роботи із файлами прямого доступу.
  5. Збільшено максимальну розмірність масиву з 3 до 7. Знято обмеження на індекси масиву.
  6. Удосконалено та розширено можливості роботи з процедурами.
  7. Введено поняття внутрішнього файлу (якими є масиви, числові та рядкові змінні). Внутрішні файли дозволяють, зокрема, здійснювати перетворення число-рядок і рядок-число стандартним операторами читання та запису READ та WRITE [3] .
  1. Введено вільний формат написання коду. З'явилися додаткові описи IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST.
  2. Введені керуючі оператори та конструкції. Додано DO … END DO (замість завершення циклу міткою), DO WHILE, оператор передачі управління на початок циклу CYCLE, конструкція вибору SELECT CASE (для заміни громіздких конструкцій IF та операторів GOTO), а також заключний оператор програмної одиниці, модульної чи внутрішньої процедури END [2] .
  3. Введено інструментарій покажчиків та функції для роботи з оперативною пам'яттю (за аналогією з мовою С).
  4. Введено операторів роботи з динамічною пам'яттю (ALLOCATE, DEALLOCATE, NULLIFY).
  5. Додано програмні компоненти MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT.
  6. Введено маскування присвоювання масивів (привласнення при виконанні накладеної на елементи масиву логічної умови без використання операторів умови), а також робота з перерізами масивів. Введено оператора та конструкцію WHERE для часткової заміни циклів (права частина оператора присвоєння не змінюється). Маскування присвоювання поширюється на всі оператори, конструкції та функції, оперують з масивами.
  7. Стандартні операції присвоєння, складання, віднімання, і навіть поділу і множення число поширені на масиви та його секції, зумовлені перерізами. І тут здійснюється поэлементное присвоювання.
  8. З'явилися нові вбудовані функції, насамперед до роботи з масивами. Функції для обчислень у масивах: ALL (лог. твір) та MASK (логічне додавання), COUNT (число істинних елементів), PRODUCТ (твір елементів масиву), SUM (складання елементів масиву), DOT_PRODUCT (скалярний твір), MATMUL (множення матриць) ). Додалися довідкові функції, а також функції переформування та згортки масивів.
  9. У мові виникли елементи ООП[4] . Введено похідні типи даних. Окремо оголошено список застарілих характеристик мови, призначених для видалення в майбутньому.
  10. Додані додаткові функції для роботи з рядковими даними, зокрема, функції TRIM (видалення завершальних прогалин) та REPEAT (кратне копіювання рядка) та функції вирівнювання по лівій та правій межах.
  1. Асинхронне введення-виведення даних.
  2. Засоби взаємодії з мовою C.
  3. Удосконалення динамічного розміщення даних [5].

Компілятори

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

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

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

Іншим великим постачальником систем розробки на Фортрані є фірма Lahey, що пропонує інтегровані рішення для Windows і Linux.

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

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

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

Можливості та структура програми

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

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

Саме тому у стандарт Фортрана, починаючи з Fortran 90, на додаток до фіксованого формату вихідного тексту з'явився вільний формат, який не регламентує позиції рядка, а також дозволяє записувати більше одного оператора на рядок. Введення вільного формату дозволило створювати код, читання та ясність якого не поступається коду, створеному за допомогою інших сучасних мов програмування, таких як C або Java.

Свого роду «візитною карткою» старого Фортрана є величезна кількість міток, які використовувалися як в операторах безумовного переходу GOTO, так і в операторах циклів, і операторів опису форматного вводу/виводу FORMAT. Велика кількість міток та операторів GOTO часто робила програми на Фортрані важкими для розуміння.

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

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

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

real,dimension(:,:)
::
V . allocate(V(-2:2,0:10))
! Виділити пам'ять під масив, індекси якого можуть
! змінюватись у межах від -2 до 2 (перший індекс)
! та від 0 до 10 - другий . V(2,2:3)=V(-1:0,1)
! Повернути шматочок масиву write(*,*)V(1,:)
! Друкувати всі елементи масиву V, перший індекс яких дорівнює 1.
deallocate(V)

Hello, World!

Фіксований формат (символами «␣» виділено прогалини у позиціях рядка з 1 по 6):

␣␣␣␣␣␣PROGRAM hello ␣␣␣␣␣␣PRINT*, 'Hello, World!' ␣␣␣␣␣␣END

ФОРТРАН

У 1954 р. групою розробників на чолі з Джоном Бекус був створений мову програмування ФОРТРАН (FORTRAN - від Formula Translator, тобто мова для програмування математичних розрахунків). Це перша мова програмування високого рівня. Вперше програміст міг по-справжньому абстрагуватись від особливостей машинної архітектури. Ключовою ідеєю, що відрізняє нову мову від Ассемблера, була концепція підпрограм.Транслятор [1] з ФОРТРАН в машинні коди був дуже складною програмою, яка на відміну від сучасних трансляторів не виконувала контроль багатьох помилок програміста. Крім того, машинний код, що генерується, був менш ефективний, ніж якби програма спочатку писалася на АССЕМБЛЕРі.

Згодом прийшло розуміння, що реалізація великих проектів неможлива без застосування мов високого рівня. Потужність обчислювальних машин зростала, і з тим падінням ефективності, яке раніше вважалося загрозливим, стало можливим упокоритися. Переваги ж мов високого рівня стали настільки очевидними, що спонукали розробників до створення нових мов, дедалі більше досконалих. ФОРТРАН був задуманий для використання у сфері наукових та інженерно-технічних обчислень. Цією мовою легко описуються завдання з розгалуженою логікою (моделювання виробничих процесів, вирішення ігрових ситуацій тощо), деякі економічні завдання і особливо завдання редагування (складання таблиць, зведень, відомостей тощо). За тривалий час використання цієї мови-довгожителя були накопичені колосальні бібліотеки стандартних підпрограм, що реалізують різноманітні обчислення, таких як, наприклад, чисельні методи вирішення диференціальних рівнянь. В даний час надаються сучасні версії ФОРТРАНу, можливості яких близькі до інших мов високого рівня.

  • [1] Використані матеріали із статті М. Пліскіна "Еволюція мов програмування" (http://schooIs.keldysh.ru/sch444/MUSEUM/LANR/evol.htm, http://www.dotsite.ru/Publications/Publication51.aspx).

FORTRAN - перша мова високого рівня

Можливо, це була перша у світі мова високого рівня і Майк Бедфорд виявляє, що FORTRAN живий і процвітає донині.

Коли FORTRAN тільки зароджувався, мов високого рівня практично не існувало, і тим більше не було таких, які здобули б широку популярність. Зараз, коли такі мови стали практично універсальними, слід пам'ятати, що високого рівня були створені для полегшення роботи програміста. Раніше код писався на "рідних" інструкціях комп'ютера, які визначаються його апаратною частиною. За допомогою язика високого рівня стало можливим використання інструкцій, наближених до людських. Крім того, з'явилася можливість переносити програми з одного комп'ютера на інший, хоча при розробці FORTRAN це не враховувалося, оскільки мова спочатку створювалася спеціально для комп'ютера IBM 704.

Сьогодні про це практично забули, але науковий комп'ютер IBM 704 відіграв важливу роль у запуску проекту FORTRAN.

Оригінальний FORTRAN був представлений у 1957 році та містив лише 32 інструкції, що сильно відрізняє від більшості сучасних мов. Більше того, деякі з цих інструкцій були прив'язані до апаратного забезпечення IBM 704, тому вони були видалені з пізніших версій, які мали стати апаратно незалежними.

Команда IBM, що займалася розробкою FORTRAN, очолювалася Джоном Бекусом, ім'я якого ви можете дізнатися за нотацією Backus Naur Form.

Якщо ви хочете спробувати свої сили в кодингу на FORTRAN 1957, компілятора FORTRAN для IBM 704 ви не знайдете.Однак, хоча деякі інструкції, специфічні для оригінального FORTRAN 704, у подальшому було видалено, кожна версія FORTRAN зберігала більшість (але не всі) інструкцій своїх попередників для забезпечення зворотної сумісності. інструкції та уникати використання тих, які були видалені зовсім недавно. FOSS-компілятором є GFortran (GNU Fortran), доступний в основних репозиторіях. та фактично використовує компілятор GFortran.

В якості першого прикладу ми пропонуємо спробувати, а потім, можливо, і модифікувати наступний код, написаний на оригінальній версії мови FORTRAN. , можливо, Вам вдасться її виправити. включно. За визначенням факторіал нуля дорівнює 1, а факторіалу негативного числа не існує.

READ 30,N 30 FORMAT(I2) IF(N) 40,60,70 40 PRINT 50 50 FORMAT(17HCAN'T BE NEGATIVE) GOTO 110 60 NFAC=1 GOTO 90 70 NFAC=1 DO 80 I=1,N NFAC =NFAC*I 80 CONTINUE 90 PRINT 100,NFAC 100 FORMAT(I6) 110 STOP END

Декілька коментарів допоможуть вам зрозуміти код. У 1957 році комп'ютери, як правило, не мали терміналів типу VDU або телетайпів, тому оператор READ мав зчитувати дані з перфокарти. Якщо ви використовуєте Try It Online, введіть в область Input значення для читання - число, для якого потрібно обчислити факторіал і яке було б зчитане з перфокарти. За замовчуванням усі імена змінних, що починаються з букв I, J, K, L, M або N, вважаються цілими числами; змінні, що починаються з будь-якої з інших літер, – речовими. Оператори READ і PRINT посилаються на оператор FORMAT за номером рядка, що визначає спосіб інтерпретації чи відображення даних. Наприклад, FORMAT, пов'язаний з оператором READ, Вказує, що очікується ціле значення, що складається максимум з двох цифр, а FORMAT, пов'язаний з останнім оператором PRINT, Вказує, що воно має бути виведене у вигляді шестизначного цілого числа. Оператор IF - це арифметичний оператор IF, на відміну від логічного IF, який ми найчастіше використовуємо в інших мовах і який з'явився лише у пізнішій версії FORTRAN. Арифметичний IF розгалужується на одну з трьох рядків, залежно від того, чи є результат виразу в дужках негативним, нульовим або позитивним відповідно. Цикл DO завершується оператором CONTINUE, номер рядка якого вказано в операторі DO. Спочатку використовувалися лише великі літери, хоча зараз більшість компіляторів допускають використання малих літер. Код має фіксований формат. Символ C у першому стовпці означає, що рядок є коментарем, необов'язковий номер рядка може бути вказаний у стовпцях 1-5, будь-який символ у стовпці 6 означає, що рядок є продовженням попереднього рядка, а власне оператор відображається у стовпцях 7-72.

Детальніше про оригінальний FORTRAN можна дізнатися з довідника IBM Programmer's Reference Manual.

Можливо, найкращим способом проілюструвати зрілість FORTRAN є вказівка ​​на те, що IBM 704, на якому він був вперше запущений, використовувалися електронні лампи.

Продовження шляху

Оскільки оригінальний FORTRAN містив всього 32 інструкції, деякі з яких були пов'язані з унікальним апаратним забезпеченням IBM 704, не дивно, що з часом FORTRAN було розширено. і додавало підтримку підпрограм та функцій, що визначаються користувачем, що, безумовно, було великим недоліком вихідного FORTRAN плюс комплексні числа Існував також FORTRAN III, але він так і не був опублікований.

Ще одне свідчення того, що в момент створення FORTRAN світ був зовсім іншим: програмістам доводилося носити із собою величезні чарки перфокарт із кодом.

GR = (1 + SQRT (5.0))/2 NMARK=78 PRINT 10 10 FORMAT(39H N FIBONACCI GOLDEN RATIO WITHIN 0.001%) NFIB1=1 NFIB2=1 DO 200 N=1,30 IF(N.GT.2) GOTO 50 NFIB=1 GOTO 60 50 NFIB = NFIB1 + NFIB2 NFIB1 = NFIB2 NFIB2 = NFIB 60 GRAPP = REAL (NFIB) / REAL (NFIB1) ERR = ABS (GR-GRAPP) / GR * 100 IF (ERR.LT.0.001) NMARK = 89 PRINT 100,N ,NFIB,GRAPP,NMARK 100 FORMAT(I2,XXXX,I6,XX,F11.9,X,A1) 200 CONTINUE 210 STOP END

Перш ніж приступити до розгляду коду, необхідно пояснити, що робить.Таким чином, перші кілька чисел Фібоначчі - це 1, 1, 2, 3, 5, 8, 13 і 21. Далі, для кожного N ми також розраховуємо і виводимо наближене значення золотого перерізу і вказуємо за допомогою символів N або Y, чи є воно не більше 0,001% від дійсного значення. Золотий перетин – якщо ви не знайомі з цим поняттям, ми рекомендуємо вам почитати про нього це дуже цікаво. Якщо повернутися до числа Фібоначчі, то співвідношення пар послідовних чисел Фібоначчі дедалі більше наближаються до реального значення золотого перерізу.

Тепер доречно зробити кілька зауважень щодо коду. Основна відмінність цього коду від програми, написаної оригінальною мовою FORTRAN, полягає у використанні логічного оператора IF. У першому рядку обчислюється фактичне значення золотого перерізу. Хоча FORTRAN IV не підтримує змінні символьних рядків, ціла чисельна змінна може зберігати значення ASCII, і якщо потім надрукувати його, використовуючи позначення A в операторі FORMAT, то буде надруковано відповідний символ. Такою змінною є NMARK, А значення ASCII для N і Y дорівнюють 78 і 89 відповідно. Ми використовуємо кілька функцій, у тому числі SQRT і ABS, але на особливу увагу заслуговує REAL у рядку 60. Вона необхідна, оскільки ми ділимо два цілі числа, і якби ми не використовували функцію REAL, то результат був би цілим.

Ми не будемо так детально розглядати всі наступники FORTRAN IV/66 – їх було досить багато, але коротко опишемо основні особливості найважливіших версій. У FORTRAN 77 до оператора IF була додана опція ELSE, а також введено поняття блоків, але лише для оператора IF. Вперше було додано символьний тип даних.Згодом було додано підтримку блокової структури, що включає конструкції. DO WHILE і CASE. З появою Fortran 90, і це не друкарська помилка, з настанням 1990-х років FORTRAN став Fortran - вимога поміщати номери рядків і операторів у певні стовпці була ослаблена. Також було дозволено використовувати поєднання символів верхнього та нижнього регістрів, а колишня вимога використовувати лише великі літери була відлунням епохи перфокарт. Fortran 90 також допускав рекурсію і дозволяв працювати з масивами як із єдиним цілим, а чи не з окремими елементами у циклі чи вкладених циклах. Об'єктно-орієнтована обробка з'явилася у Fortran 2003, а з появою Fortran 2008 було реалізовано підтримку паралельної обробки. Побіжно слід згадати також Fortran 95 і Fortran 2018, але ми пропустимо повз вуха зауваження, можливо, анафемне для прихильників FORTRAN, про те, що додані в них нові можливості були досить незначними.

Сьогодні на ПК під керуванням Linux можна запустити FORTRAN або практично будь-яку іншу мову. Однак якщо ми перейдемо від терміна "ПК" до терміну "домашній комп'ютер", то ті, хто має довгу пам'ять, згадають бум домашніх комп'ютерів початку 80-х років. І майже всі ці комп'ютери пропонували єдину вбудовану мову програмування: Basic. Цікаво, однак, що FORTRAN з'явився і на ранніх мікропроцесорних комп'ютерах.

Персональні комп'ютери в найширшому значенні цього слова з'явилися на початку 70-х років, багато з них було побудовано на базі 8-розрядного процесора Intel 8080 зразка 1974 року, а також його близьких родичів – Intel 8085 та Zilog Z80.Вони були дорогими, тому широко використовувалися в ранніх бізнес-додатках, а також залучали заможних аматорів. Навіть у ті ранні часи, незважаючи на велику різноманітність, на перший план виходила стандартизація у вигляді операційної системи CP/M. З 1977 до кінця 80-х років CP/M з'явилася на цілій низці комп'ютерів, хоча іноді тільки за наявності додаткового співпроцесора. Хоча більшість цих комп'ютерів належали вже забутим іменам, інші компанії, включаючи Acorn, Amstrad, Atari, Commodore та Tandy, також продавали машини на базі CP/M. В основному він не входив у стандартну комплектацію, але коли інші користувачі домашніх комп'ютерів програмували на Basic, FORTRAN дозволив користувачам CP/M взяти на озброєння досконалішу мову.

У той час, як інші домашні комп'ютери 80-х років працювали тільки на Basic, Amstrad CPC 464 пропонував як опцію CP/M, а значить, і FORTRAN.

FORTRAN сьогодні

Якби ми були критичнішими, то могли б назвати FORTRAN застарілою мовою. Звичайно, він продовжує оновлюватися, але можна стверджувати, що нові версії є запізнілими спробами впровадити парадигми програмування, які вже десятиліттями були загальноприйнятими іншими мовами. Наприклад, блокова орієнтація почала обмежено виявлятися тільки в FORTRAN 77, майже через 20 років після того, як це поняття було введено до ALGOL. А якщо взяти приклад об'єктної орієнтації, то вона з'явилася тільки в Fortran 2003, що з'явився на сцені не менш як через 31 рік після того, як мова Simula вперше познайомила світ з цією парадигмою.Однак якщо все це справедлива критика, то буде напрочуд дивно дізнатися, що, згідно з останнім індексом популярності мов програмування TIOBE, FORTRAN сьогодні займає цілком гідне 14-е місце.

Щоб дізнатися більше про те, що FORTRAN як і раніше привабливий, ми поговорили з Рафіком Зуробом, менеджером з розробки компілятора IBM Open XL Fortran. що він використовується у вищих ешелонах обчислювальної техніки для передових досліджень. високопродуктивних обчислень та інших додатків, що вимагають великих обчислень. розповів він.

Але чи використовується він тільки для підтримки застарілих додатків, або на FORTRAN сьогодні пишуться нові проекти? також використовують нові можливості пізніших стандартів FORTRAN. також змінилося: замість того, щоб використовувати його для написання всієї програми, тепер він частіше використовується для написання обчислювальних ядер для програми. Інші мови, такі як C/C++ або Python, використовуються для написання інтерфейсу користувача або іншого коду, що викликає обчислювальне ядро.В результаті багато користувачів не підозрюють, що використовують бібліотеки FORTRAN. Наприклад, якщо ви користувалися модулями SciPy або NumPy у Python, то, швидше за все, використовували бібліотеку BLAS, написану на FORTRAN. В даний час програми на FORTRAN також часто використовують специфікації OpenMP або MPI для додавання паралелізму (безліч одночасних потоків в одній програмі), вивантаження на прискорювачі, такі як GPU, і розподілу, тобто взаємодії між різними програмами, можливо, на різних комп'ютерах. Це дозволило використовувати переваги FORTRAN на великих суперкомп'ютерах, що мають кілька CPU та GPU.

Список Top500, що публікується двічі на рік, визначає 500 найшвидших суперкомп'ютерів у світі, і в даний час у ньому лідирує 8699904-ядерний Frontier, розташований в Національній лабораторії DOE/SC/Oak Ridge в США. Це єдиний комп'ютер, продуктивність якого перевищила 1EFLOPS, тобто. один квінтильйон (1 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000) інструкцій з плаваючою точкою в секунду, що вимірюється.

За такої продуктивності - у 100 000 разів більше, ніж у ігрових ПК вищого класу - вибір відповідної мови дуже важливий для того, щоб використовувати її максимально. Тому цікаво відзначити, що практично у всьому, що можна прочитати про програмне забезпечення Frontier, згадуються лише три мови: C, C++ та FORTRAN. І це не поодинокий випадок. З моменту створення першого комп'ютера з програмами, що зберігаються, до появи першого екзафлопсного комп'ютера минуло 74 роки, але інші вже йдуть по п'ятах.Наприклад, суперкомп'ютер El Capitan, що готується до випуску, розташований у Ліверморській національній лабораторії імені Лоуренса, має проектну швидкість, що вдвічі перевищує швидкість Frontier, а Aurora, розташована в Аргонській національній лабораторії, як очікується, перевищить цей показник у 2EFLOPS. І хоча про підтримувані El Capitan мови поки нічого не йдеться (але ми можемо припустити), як і Frontier, Aurora програмуватиметься мовами C/C++ і FORTRAN. Чи може бути краще свідчення про мову 50-х років, ніж те, що у 2023 році на ній працюватимуть найвибагливіші додатки у світі?

У світі високопродуктивних обчислень FORTRAN залишається дуже важливим робочим конячком.

Отже, які ж переваги FORTRAN сприяли його використанню в даний час і як щодо цього він співвідноситься з більш сучасними мовами? За словами Рафіка, "FORTRAN - це мова високого рівня, що дає компілятору більше можливостей для оптимізації. Прикладом тому може служити конструкція покажчиків. FORTRAN дозволяє користувачеві вказувати цілі, до яких може звертатися покажчик. Це дозволяє компілятору побудувати більш точний аналіз аліасингу, ніж у інших мовах, таких як C, де покажчики можуть адресуватися до чого завгодно". Залишається тільки гадати, чи викличуть Python і Java такі доброзичливі відгуки через півстоліття.

Схожі статті

  • Коли та ким була створена Монгольська імперія
  • Коли садити перець на розсаду 2024 року в домашніх умовах
  • Коли востаннє була чума
  • Коли день народження у стрічці
  • Вивести сечу з матраца в домашніх умовах
  • Коли створили біту
  • Коли бананове дерево дає плоди
  • Коли сесія у заочників узимку
  • Недавні статті

  • Чому взуття скрипить при ходьбі
  • Коли день народження у стрічці
  • Чи можна кішці їсти сіль
  • Варіанти планування ділянки 15 соток прямокутної форми
  • Що означає півмісяця знак
  • Рейсмусовий верстат для чого
  • У якому віці парують свиней
  • У чому полягає принцип нарахування та у яких випадках він застосовується