Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
розділ_1_28_08_15.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2.39 Mб
Скачать

4.3.4. Огляд мови fortran II

Компілятор FORTRAN II почав поширюватися навесні 1958 року. Він виправив безліч помилок системи компіляції мови FORTRAN I, а також додав у мову кілька істотних властивостей, найважливішою з яких була незалежна компіляція підпрограм. При відсутності такої властивості будь-яка зміна вимагала перекомпіляції всієї програми. Відсутність у мові FORTRAN 1 можливості незалежної компіляції разом з низькою надійністю комп'ютера IBM 704 обмежувало обсяг програми, що повинен був не перевищувати 300^00 рядків (Wexelblat, 1981). Програми, які мали більший обсяг, мали мало шансів завершити компіляцію до збою в роботі машини. Можливість включення в програму підпрограм, попередньо відкомпільованих на машинних мовах, значно скорочувала процес компіляції.

4.3.5. Мови fortran IV, fortran 77 і fortran 90

Мова FORTRAN III була розроблена, але так ніколи і не одержала широкого поширення. Мова FORTRAN IV, навпаки, стала однією з найвикористовуваніших у той час мов програмування. Розвиток цієї мови відбувався в період з 1960 по 1962 рік, і вона залишалася стандартною версією мови FORTRAN аж до виходу в 1978 році повідомлення про випуск мови FORTRAN 77 (ANSI, 1978a). За багатьма параметрами мова FORTRAN IV була значно краще мови FORTRAN II. Серед найважливіших її нововведень було явне оголошення типів змінних, логічний оператор IF, а також можливість передавати одні підпрограм іншим у якості їхніх параметрів.

Мова FORTRAN 77 підтримувала більшість властивостей мови FORTRAN IV, крім того, у неї були додані обробка символьних рядків, логічні оператори керування циклами, а також можливість використання оператора ELSE у структурі вибору IF.

Назва FORTRAN 90 використовується для позначення пізнішої версії мови FORTRAN (ANSI, 1992). Мова FORTRAN 90 разюче відрізняється від мови FORTRAN 77. Найзначущі зміни коротко описуються нижче.

Вбудовано набір функцій, який виконує дії з масивами. В їхнє число входять: DOTPRODUCT, MATMUL, TRANSPOSE, MAXVAL, MINVAL, PRODUCT і SUM, про призначення яких можна догадатися по назвах ("скалярний добуток", "множення матриць", "транспонування", "максимальна величина", "мінімальна величина", "добуток" і "сума"). Це тільки деякі з найбільш корисних доступних функцій.

Якщо масиви були оголошені як ALLOCATABLE, то вони можуть по команді динамічно розміщуватися в пам'яті і видалятися з її. Остання можливість є радикальною зміною в порівнянні з попередніми версіями мови FORTRAN, які мали лише статичні дані. Була введена форма записів, названих похідними типами. Частиною мови FORTRAN 90 стали також покажчики.

Були додані нові керуючі оператори: оператор різноманітного розгалуження CASE, оператор EXIT — для передчасного виходу й оператор CYCLE — для передачі керування на початок циклу без виходу з циклу.

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

Була додана можливість використання модулів, аналогічних пакетам мови Ada. Модулі можуть містити оголошення даних і підпрограми, кожну з яких для керування зовнішнім доступом можна описати за допомогою специфікаторів PRIVATE або PUBLIC.

В описі мови FORTRAN 90 з'явилася нова концепція, що дозволяла видаляти властивості мови, які були присутні у ранніх версіях. Хоча мова FORTRAN 90 і мала усі можливості мови FORTRAN 77, було складено два списки властивостей, що могли бути ліквідовані в наступній (після мови FORTRAN 90) версії мови FORTRAN. У цьому списку були вказані такі оператори, як арифметичний оператор IF і призначений оператор GOTO. Список властивостей, які не рекомендуються до вживання, включав властивості, від яких планувалося відмовитися в другій версії, яка піде за мовою FORTRAN 90. У цьому списку знаходилися оператори COMMON, EQUIVALENCE, обчислюваний оператор GOTO, а також операторні функції.

4.3.6. Оцінка

Команда розробників первісного варіанта мови FORTRAN вважала, що розробка мови — тільки необхідна прелюдія перед насущною задачею розробки транслятора. Більш того, їм ніколи не спадало на думку, що мова FORTRAN мігла б використовуватися на комп'ютерах виробництва інших корпорацій, а не корпорації IBM. Дійсно, вони були змушені продумувати побудову компіляторів мови FORTRAN для інших машин, створюваних корпорацією IBM, тільки тому, що спадкоємець комп'ютера IBM 704, комп'ютер IBM 709, був випущений до випуску компілятора мови FORTRAN, призначеного для комп'ютера IBM 701. Той факт, що мова FORTRAN була реально використана на комп'ютерах, а всі наступні мови програмування своєю появою в тій чи іншій мірі зобов'язані мові FORTRAN, є дійсно вражаючим у світлі скромних домагань його розробників.

Однїєю з властивостей мови FORTRAN I і всіх її наступних версій, за винятком мови FORTRAN 90, які дозволяли створення високо оптимізованих компіляторів, було те, що типи і комірки пам'яті для всіх змінних фіксувалися до виконання програми. У процесі виконання програми нові змінні не вводилися, і розподіл пам'яті не відбувався. Таким чином, гнучкість програмування була принесена в жертву простоті й ефективності. Подібне рішення виключило можливість створення рекурсивних підпрограм і ускладнило реалізацію структур даних, що могли б динамічно збільшуватися чи змінювати вигляд. Зрозуміло, програми, створювані під час розробки ранніх версій мови FORTRAN, були обчислювальними по своїй природі і простими в порівнянні із сучасними програмними проектами. Отже, жертва була не такою вже й великою.

Важко переоцінити глобальний успіх мови FORTRAN: вона дійсно разюче і навічно змінила спосіб використання комп'ютерів. Це, зрозуміло, відбулося значною мірою завдяки тому, що вона виявилася першою широко використовуваною мовою високого рівня. У порівнянні з концепціями і мовами, розробленими пізніше, ранні версії мови FORTRAN значно програють, як і належало очікувати. Усе-таки випущеному Фордом у 1910 році автомобілю "Model Т" далеко до створеного в 1998 році автомобіля "Ford Mustang". Проте, незважаючи на недостатність мови FORTRAN, рушійна сила вкладених у неї величезних інвестицій, крім інших факторів, вивела її в число найвикористовуваніших мов високого рівня.

Алан Перліс (Alan Perlis), один з розробників мови ALGOL 60, у 1978 році сказав: "Мова FORTRAN — це lingua franca (змішана мова з елементів романських, грецької і східних мов, що використовується для спілкування в східному Середземномор'ї; також мова із широкою сферою вживання, жаргон.— Прим.переїв) комп'ютерного світу. Це мова вулиць, у кращому, а не вульгарному змісті цього слова. Вона вижила і буде жити, оскільки вона була створена для того, щоб бути чудово корисною частиною життєво важливої комерційної діяльності" (Wexelblat, 1981).

Нижче наведено приклад програми мовою FORTRAN 90.

С ПРИКЛАД ПРОГРАМИ МОВОЮ FORTRAN 90

С ВВЕДЕННЯ: ЦІЛЕ ЧИСЛО LIST^LEN, МЕНШЕ 100, ЗА ЯКИМ С ВИПЛИВАЄ НАБІР ЦІЛИХ ЧИСЕЛ, У КІЛЬКОСТІ

С LIST_LEN

С ВИСНОВОК: КІЛЬКІСТЬ УВЕДЕНИХ ВЕЛИЧИН, ЩО БІЛЬШЕ ЇХ СЕРЕДНЬОГО С АРИФМЕТИЧНОГО

INTEGER INTLIST(99)

INTEGER LIST^LEN, COUNTER, SUM, AVERAGE, RESULT RESULT =* 0 SUM = 0

READ *, LIST_LEN IF ((LIST_LEN .GT. 0) .AND.

(LIST_LEN .LT. 100)) THEN

С ЗЧИТУВАННЯ ВХІДНИХ ВЕЛИЧИН У МАСИВ І ОБЧИСЛЕННЯ ЇХНЬОЇ СУМИ

DO 10 COUNTER = 1, LIST_LEN READ *, INTLIST(COUNTER) SUM = SUM + INTLIST(COUNTER)

10 CONTINUE

С ОБЧИСЛЕННЯ СЕРЕДНЬОГО

AVERAGE = SUM / LIST LEN

С ПІДРАХУНОК ЧИСЛА ВЕЛИЧИН, ЩО БІЛЬШЕ СЕРЕДНЬОГО

DO 20 COUNTER = 1, LISTJLEN

IF (INTLIST(COUNTER) .GT. AVERAGE) THEN

RESULT = RESULT +1 END IF

CONTINUE

С ВИВІД РЕЗУЛЬТАТІВ

PRINT *,'ЧИСЛО ВЕЛИЧИН,ЩО БІЛЬШЕ СЕРЕДНЬОГО,ДОРІВНЮЄ', *RESULT ELSE

PRINT *,'ПОМИЛКА - ВВЕДЕНА НЕВІРНА ДОВЖИНА СПИСКУ' END IF STOP END

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]