Система програмування Фортран 77 для ЄС ЕОМ та перспективи її розвитку
Г. Д. Смирнов, канд. техн. наук (СРСР), Ст. І. Цагельський, канд. фіз.-мат. наук (СРСР), Е. В. Ковалевич, інженер (СРСР), 3. С. Бріч, інженер (СРСР)
У Фортрані 77 порівняно з Фортраном 66 суттєво збільшено можливості структурування програми, введено засоби обробки тексту, розширено властивості ряду операторів (зокрема, операторів введення-виводу, оператора циклу), введено інші вдосконалення.
Фортран ЄС ЕОМ. У системі програмних засобів ЄС ЕОМ є транслятори, що базуються як на Фортрані 66, так і на Фортрані 77.
На основі Фортрана 66 розроблені транслятори Fortran ST, SE, CC, OP, OE [2]. У цих трансляторах реалізовано розширену версію мови Фортран 66. Частина розширень містить елементи Фортрана 77, частина – враховує архітектуру ЄС ЕОМ. Наявність такої кількості трансляторів із Фортрану 66 пояснюється їх етапним розвитком. Транслятори Фортран ST та ОР становили невід'ємну частину операційної системи ОС 6.1. Транслятори Фортран CC, SE та ОЕ є їх подальшим розвитком у частині діалогових та налагоджувальних засобів, замінюють їх і є самостійним програмним продуктом по відношенню до операційних систем ЄС ЕОМ (ОС 6.1 та ОС 7.1).
Перехід від Фортрана 66 до Фортрана 77 ЄС ЕОМ. На основі мови Фортран 77 створено відповідну систему програмування [3]. У ній стандарт мови Фортран 77 реалізований у повному обсязі, причому можливості стандарту посилені корисними властивостями, що повніше враховують особливості попередніх версій Фортрана в ЄС ЕОМ. До суттєвих розширень Фортрану 77 для ЄС ЕОМ відносяться:
- оператори та стандартні функції з попередніх версій фортрану ЄС ЕОМ, відсутні у стандарті Фортрана 77. Це спрощує проблему сумісності з усіма трансляторамипопередніх версій з Фортрану ЄС ЕОМ на рівні вхідної мови;
- оператор, що дозволяє під час трансляції підключати раніше розроблені фрагменти вихідної програми;
- засоби для обробки даних підвищеної точності;
- використання виразів з операндами змішаних типів в операторах, які не обумовлені стандартом;
- засоби для роботи з даними у шістнадцятковій системі числення;
- поєднання текстових та арифметичних даних в операторах.
Для користувачів ЄС ЕОМ, які після застосування Фортрану 66 переходять до Фортрану 77, нові властивості Фортрану 77 умовно можна поділити на дві групи.
До першої групи належать можливості, що розширюють мову:
Другу групу становлять нові властивості, що розширюють можливості наявних операторів та забезпечують:
- завдання параметрів циклу DO у вигляді виразів цілого чи речового типу;
- введення параметрів UNIT, FMT, REG, ERR та IOSTAT для операторів введення-виводу;
- запровадження нових видів перетворення даних в операторі COMMON;
- використання в операторі COMMON списку із циклом;
- завдання ідентифікатора формату в операторах введення-виведення у вигляді текстової константи;
- спрощення синтаксису деяких операторів (наприклад, кому в операторі COMMON перед ім'ям загального блоку можна опускати).
Проте між версіями Фортрану 66 та Фортрану 77, реалізованими в ЄС ЕОМ, як і у відповідних стандартах, є протиріччя. Деякі суперечності характерні лише для Фортрана ЄС ЕОМ і полягають у відмінності форми запису операторів введення-виведення прямого доступу. Інші несумісності визначені вимогами стандарту Фортрану 77. Наприклад, у Фортрані 77 на відміну від Фортрану 66 тіло циклу може не виконуватися,Список виводу не повинен полягати в дужки, цикл не повинен мати розширену область.
Незважаючи на зазначені протиріччя, система програмування Фортран 77 підтримує сумісність із попередніми версіями Фортрану ЄС ЕОМ. Концепція сумісності забезпечується двома напрямами. По-перше, введено спеціальний режим трансляції, за яким виконується обробка програм на Фортрані 66. По-друге, об'єктні модулі, отримані трансляторами попередніх версій Фортрана, допускається об'єднати при редагуванні з об'єктними модулями, отриманими транслятором системи програмування Фортран 77 . Такий підхід дозволяє користувачам прийняти без переробок вихідні та об'єктні модулі, створені на Фортрані 66, в системі програмування Фортран 77.
Крім того, система програмування (СП) Фортран 77 забезпечує сумісність із транслятором FORTRAN VS знизу вгору на рівні вихідних та об'єктних модулів. Це означає, що модулі, підготовлені для обробки СП Фортран 77, можуть бути без змін оброблені транслятором FORTRAN VS, а об'єктні модулі, отримані транслятором Фортран 77, можна з'єднувати при редагуванні з об'єктними модулями, отриманими транслятором FORTRAN VS, в один об'єктний модуль.
Характеристика системи програмування Фортран 77. Ця система витримала два видання: перше містило транслятор та бібліотеки для роботи в пакетному режимі, друге є сукупністю програмних компонентів. Вони забезпечують трансляцію і налагодження вихідних програм на Фортрані 77 як пакетному, так і діалоговому режимі (ПДО СВМ і СРВ ОС 6 і ОС 7). Особливо розвиненими є засоби налагодження в діалоговому режимі, які забезпечуються діалоговим налагоджувачем.
Транслятор функціонує в пакетному тадіалоговий режим, виклик транслятора в діалоговому режимі здійснюється за допомогою команд, які є посередниками ПДО та СРВ. Транслятор здійснює введення вихідної програми та її перетворення на об'єктну програму. Транслятор написаний мовою системного програмування та складається з 4 фаз: аналізу, розподілу пам'яті, генерації об'єктного коду та виведення. Аналіз базується на методі рекурсивного спуску та поєднує в собі лексичний та синтаксичний контроль вихідної програми. Аналіз програми супроводжується побудовою проміжного тексту у формі зворотного польського запису. Перевірка контекстних умов виконується на фазах аналізу та розподілу пам'яті. p align="justify"> При генерації об'єктного коду враховуються умови, що допускають локальну оптимізацію об'єктного коду. Режими трансляції дозволяють керувати виведенням результатів трансляції. Результатами виводу можуть бути об'єктна програма, роздруківки вихідної та об'єктної програми, таблиця розподілу пам'яті елементів вихідної програми, таблиця перехресних посилань, повідомлення про помилки у програмі. Інформація про помилку досить повно характеризує суть порушень правил мови, допущених користувачем.
Бібліотека програм забезпечує реалізацію елементів вхідної мови, що стосуються операцій вводу-виводу, стандартних функцій мови, а також діагностику та обробку помилкових ситуацій, що виникають під час виконання робочої програми. Кожне повідомлення про помилку містить інформацію, достатню для визначення розташування помилки у вихідній програмі. Бібліотека включає розвинені засоби обробки помилок, які дозволяють:
- вводити у програмах користувача обробку нових помилкових ситуацій, які не виявляються програмами бібліотеки;
- керувати виведенням повідомлень про помилки та виведенням спискувикликаних підпрограм, які отримали управління на момент виникнення помилки, і навіть виконанням робочої програми після виявлення помилки;
- керувати коригуючими діями після виникнення помилки. Розрізняються два типи коригуючих дій: стандартне, що автоматично забезпечується бібліотекою Фортрана, і нестандартне, яке користувач планує при кодуванні вихідної програми.
Підключення програм бібліотеки до об'єктних програм здійснюється на етапі редагування засобами операційної системи.
Діалоговий налагоджувач дозволяє виконувати налагодження програм на рівні та в термінах вхідної мови. Для завдання дій налагодження використовується мова налагодження у вигляді підкоманд спеціальної команди ПДО або СРВ. Широкий набір підкоманд дає можливість задавати різноманітні дії, що дозволяють здійснювати динамічний контроль за виконанням робочої програми на рівні об'єктів вихідної програми. Залежно від результатів користувач може змінювати послідовність виконання операторів вихідної програми, роздруковувати і модифікувати дані, а також запитувати виконання різних сервісних функцій, що спрощують проведення налагодження. Налагоджувальні дії задаються в певних абонентом точках переривання і поширюються такі об'єкти вихідної програми, як змінні, масиви і оператори. Для вказівки деяких налагоджувальних дій можуть використовуватись арифметичні, логічні та текстові вирази. Програми, призначені для діалогового налагодження, повинні бути протрансльовані із зазначенням спеціального режиму, при якому в об'єктному модулі для кожного оператора встановлюється зв'язок з діалоговим налагоджувачем, а також будуються додаткові таблиці (таблиця символічних імен та таблиця операторів),що дозволяють в процесі налагодження програми звертатися до змінних та масивів за їх іменами, а до операторів – за їх мітками чи номерами рядків.
Розвиток системи програмування Фортран 77 продовжується. Система нарощуватиметься компонентами, які нададуть користувачам можливість отримувати високоефективні оптимізовані програми, а також реентерабельні програми для економії пам'яті. Для цього в трансляторі передбачаються 3 рівня оптимізації. Перший рівень забезпечує найкраще використання обмеженої кількості регістрів та більш швидких команд переходу. Другий та третій рівні оптимізації, крім можливостей першого рівня, включають оптимізацію тексту програми. Причому на відміну від третього рівня на другому рівні оптимізації виключаються переміщення тексту програми, які можуть призвести до збійних ситуацій. Для отримання робочих реентерабельних програм забезпечується відповідна підтримка у трансляторі, бібліотеці та включається до системи додатковий компонент – програма поділу. Розширюються можливості введення-виведення на рівні мови для використання засобів віртуального методу доступу, що забезпечує високу ефективність обробки даних. Всі наступні видання СП Фортран 77 також забезпечуватимуть повну сумісність з транслятором FORTRAN VS на рівні вихідних та об'єктних модулів.
Планується, щоб система Фортран 77 стала єдиною та універсальною системою для користувачів Фортрану у базових, програмних засобах ЄС ЕОМ.
- Колдербенк В. Дж. Програмування на Фортрані. Фортран 66 і Фортран 77: Пер. з англ. - М.: Радіо і зв'язок, 1986. - 176 с.
- Бріч 3. С. та ін. Фортран ЄС ЕОМ // 3. С. Бріч, Д. В. Капілевіч, С. Ю. Котик, В. І. Цагельський. - 2-ге вид. - М.: Фінанси та статистика,1985. - 264 с.
- Брич 3. С. та ін. Основні засади системи програмування Фортран 77 ЄС ЕОМ // Питання радіоелектроніки. - Сірий. ЕВТ. - Вип. 15. - 1984. - С. 12–14.