Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Огляд мови 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

4.4. Функціональне програмування: мова LISP

Перша мова функціонального програмування була винайдена для підтримки мовних засобів обробки списків, потреба в яких виникла з появою перших робіт в області штучного інтелекту.

4.4.1. Витоки робіт в області штучного інтелекту та обробка списків

Інтерес до штучного інтелекту почав з'являтися в середині 1950-х років у різних областях. Потреба в ньому відчувалася частково в лінгвістиці, частково у філософії, частково у математиці. Лінгвісти зосередилися на обробці текстів природною мовою. Психологів цікавило моделювання здібностей людини до запам'ятовування і відтворення спогадів, а також інші фундаментальні процеси людського мислення. Математики вивчали механізм таких процесів міркування, як доказ теорем. Усі ці дослідження прийшли до одного висновку: необхідно створити певні методи, які дозволили б комп'ютерам обробляти символьні дані, що зберігаються у виді зв'язних списків. Відзначимо також, що в той час практично всі обчислення виконувалися над числовими даними, які зберігаються у вигляді масивів.

Концепція обробки списків була розроблена Алленом Ньюелом (Allen Newell), Дж. Шоу (J. С. Shaw) і Гербертом Саймоном (Herbert Simon). Вперше вона була опублікована в класичній роботі, яка описувала одну з перших програм штучного інтелекту, програму Logical Theorist, а також мову, якою вона могла б бути реалізована (Newell and Simon, 1956). Мова, названа IPL-I (Information Processing Language — мова обробки інформації), ніколи не була впроваджена. Наступна версія цієї мови IPL-II була реалізована на комп'ютері Johnniac корпорації Rand Corporation. Розвиток мови IPL продовжувався до 1960 року, коли був опублікований опис мови IPL-V (Newell and Tonge, 1960). Широкому поширенню мов сімейства IPL заважав їхній низький рівень. Для гіпотетичного комп'ютера, реалізованого за допомогою інтерпретаторів, з включеними в нього командами обробки списків, ці мови фактично були мовами ассемблера. Перша їхня реалізація була виконана на нічим не примітній машині Johnniac, що також не дуже сприяло поширенню мов сімейства IPL.

Внеском мов сімейства IPL у розвиток мов програмування були їхні спискові структури і наочна демонстрація того, що обробка списків цілком можлива і корисна.

Корпорація IBM зацікавилася штучним інтелектом у середині 1950-х років і як демонстраційну область вибрала доказ теорем. У той час повним ходом йшла розробка мови FORTRAN. Висока вартість компілятора мови FORTRAN I переконала корпорацію IBM у тім, що обробку списків простіше приєднати до мови FORTRAN, ніж виділяти її в окрему мову. Так і виникла мова FLTP (FORTRAN List Processing Language — мова обробки списків на базі мови FORTRAN), розроблена і реалізована як розширення мови FORTRAN. Мова FLPL використовувався для доказу теорем в області планіметрії, яку тоді розглядали як найпростішу область для механічного доказу теорем.





Дата публикования: 2015-09-18; Прочитано: 595 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...