Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція ЗЗООП в ЛЗ №1 2015.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
678 Кб
Скачать
☆

1.2. Топологія мов першого і початку другого покоління.

Для пояснення вище наведеного розглянемо структури, що характерні для кожного покоління. На рис. 1.2 показана топологія, типова для більшості мов першого покоління і першої стадії другого покоління. Коли кажемо "топологія", ми маємо на увазі основні елементи мови програмування і їх взаємодії. Для таких мов, як FORTRAN і COBOL, основним будівельним блоком є підпрограма (параграф в термінах COBOL). Програми, що реалізуються на таких мовах, мають відносно просту структуру, що складається тільки із глобальних даних і підпрограм. Стрілками на рисунку позначено вплив підпрограм на дані. В процесі розробки можна логічно розділити дані різного типу, але механізми мов практично не підтримують такого розділення. Помилка в деякій частині програми може мати досить серйозні наслідки, в зв’язку з тим що область даних відкрита всім підпрограмам. В більшості системах важко гарантувати цілісність даних при внесені змін в будь-яку частину системи. В процесі експлуатації вже через деякий час виникає плутанина за рахунок великої кількості перехресних зв’язків між підпрограмами, заплутаних схем управління, незрозумілого змісту даних, що загрожують надійності системи і знижують зрозумілість програми.

Рис. 1.2. Топологія мов першого і початку другого покоління.

1.3. Топологія мов другого і раннього третього покоління.

Починаючи з середини 60-х років стали усвідомлювати роль підпрограм як важливого проміжного ланцюга між задачею що вирішується і комп’ютером [1].

Використання підпрограм як механізму абстрагування мало три суттєвих наслідки. По-перше, були розроблені мови, які підтримують різноманітні механізми передачі параметрів. По-друге, були закладена база структурного програмування, що визначилась в мовній підтримці механізмів вкладеності підпрограм і в науковому дослідженні структур управління і області видимості. По-третє, виникли методи структурного проектування, що стимулювали розробників створювати великі системи, використовуючи підпрограми як готові будівельні блоки. Архітектура мов програмування цього періоді (рис. 1.3), представляє собою варіації на теми попереднього покоління. В неї внесенні деякі удосконалення, а саме, підсилено управління алгоритмічними абстракціями, але залишається невирішена проблема програмування "в великому" і проектування даних.

Рис. 1.3. Топологія мов пізнього другого і раннього третього покоління.

1.4. Топологія мов кінця третього покоління.

Починаючи з FORTRAN II і далі, для рішення задач програмування "в великому" почав розвиватися новий важливий механізм структурування. Зростання програмних проектів означає збільшення розмірів і колективів програмістів, і як наслідок, необхідність незалежної розробки окремих частин проекту. Відповіддю на цю необхідність стало окремо компільований модуль, який спочатку був випадковим набором даних і підпрограмам (рис. 1.4). В такі модулі збирали підпрограми, які, як здавалося, швидше всього будуть змінюватися разом, і мало хто розглядав їх як нову техніку абстракції. В більшості мов цього покоління, хоча і підтримувалося модульне програмування, але не вводилося ніяких правил, що забезпечують узгодження інтерфейсів модулів. Програміст, що розробляє підпрограму в одному з модулів, міг, наприклад, очікувати, що її будуть викликати з трьома параметрами: дійсним числом, масивом з десяти елементів і цілим числом, що означає логічне значення. Але в деякому іншому модулі, ця підпрограма могла помилково викликатися з фактичними параметрами у вигляді: цілого числа, масиву з п’яти елементів і від’ємного числа. Аналогічно, один з модулів міг встановити спільну область даних і зчитувати, що це його власна область, а другий модуль міг порушувати це припущення, вільно маніпулюючи з цими даними. Нажаль, оскільки більшість мов представляло в ліпшому випадку рудиментарну підтримку абстрактних даних і типів, такі помилки виявлялися тільки при виконанні програми.

Рис. 1.4. Топологія мов кінця третього покоління.