- •Лекція №1 з курсу: «Застосування засобів ооп в лінгвістичних задачах»
- •1.6. Програмування під Windows
- •1. Об’єктно-орієнтоване програмування, основна методологія програмування 90 років.
- •1. 1. Покоління мов програмування.
- •1.2. Топологія мов першого і початку другого покоління.
- •1.3. Топологія мов другого і раннього третього покоління.
- •1.4. Топологія мов кінця третього покоління.
- •1.5. Топологія об’єктних і об’єктно-орієнтованих мов.
- •1.6. Програмування в середовищі Windows1
- •1.6.1 Подієво-кероване програмування
1.5. Топологія об’єктних і об’єктно-орієнтованих мов.
Значення абстрактних типів даних у вирішенні проблеми складності систем. Усвідомлення цього визначає два важливих висновки. По-перше, виникають методи проектування на основі потоків даних, які вносять упорядкованість в абстракцію даних в мовах, орієнтованих на алгоритми. По-друге, з’являється теорія типів, яка втілюється в таких мовах, як Pascal.
Завершенням реалізації цих ідей, що почалися з мови Simula і розвиток в наступних мовах в 1970-1980-і роки, стала поява таких мов, як Smalltalk, Object Pascal, C++, CLOS, Ada і Eiffel. Ці мови отримали назву об’єктних або об’єктно-орієнтованих. На рис. 1.5 наведена (приведена) топологія таких мов при застосуванні до задач малої і середньої ступені складності. Основним елементом конструкції у вказаних мовах є модуль, який складається з логічно зв’язаних класів і об’єктів, а не підпрограм, як в мовах першого покоління.
Рис. 1.5. Топологія малих і середніх застосувань в об’єктних і об’єктно-орієнтованих мовах.
Іншими словами: "Якщо процедури і функції - дієслова, а дані - іменники, то процедурні програми будуються з дієслів, а об’єктно-орієнтовані - з іменників" [1]. З тієї ж причини структура програм малої і середньої складності при об’єктно-орієнтованому підході представляється графом, а не деревом, як у випадку алгоритмічних мов. Окрім того, зменшена або відсутня область глобальних даних. Дані і дії організовуються тепер таким чином, що основними логічними будівельними блоками наших систем становляться класи і об’єкти, а не алгоритми.
Для дуже складних систем класи, об’єкти і модулі є необхідними, але не достатніми засобами абстракції. Об’єктний підхід масштабується і може бути використаний на все більш високих рівнях. Кластери абстракцій у великих системах можуть представлятися у вигляді багатошарової структури. На кожному рівні можна виділити групи об’єктів, що щільно взаємодіють для рішення задачі більш високого рівня абстракції. В середині кожного кластера ми знайдемо таку ж множину взаємодіючих абстракцій (рис. 1.6).
Рис. 1.6. Топологія великих застосувань в об’єктних і об’єктно-орієнтованих мовах.
1.6. Програмування в середовищі Windows1
Програма, що призначена для роботи під управлінням операційної системи, називається застосуванням (application) та має свої особливості, що обумовлені тим що ресурси комп’ютера не знаходяться в її повному розпорядженні, а повинні розділятися з іншими застосуваннями (задачами).
Перед тим як вивчати принципи побудови застосувань, розглянемо основні властивості Windows.
Багатозадачність – це можливість одночасно виконувати декілька застосувань. Операційна система забезпечує розподіл ресурсів: кожному застосуванню виділяється свій простір адрес, виконується розподіл процесорного часу та організують черги для доступу до зовнішніх пристроїв. В середині застосування (задачі) можна також організувати паралельне виконання декількох фрагментів, що називаються потоками.
Незалежність програм від апаратури. Для управління апаратними засобами будь яке застосування звертається до операційної системи, що забезпечує незалежність від конкретних фізичних характеристик пристроїв: при зміні пристроїв ніякі зміни в програму вносити не треба. Управління зовнішніми пристроями забезпечується за допомогою драйверів.
Стандартний графічний інтерфейс користувача. Основна взаємодія з користувачем здійснюється в графічному режимі. Кожне застосування (задача) виконує вивід інформації в окреме вікно. Вікно складається з стандартних елементів. Це спрощує вивчення роботи з програмою для користувача, та спрощує роботу програмісту, оскільки в його розпорядження надаються бібліотеки інтерфейсних компонентів. Такі бібліотеки входять в склад систем програмування.
Інтерфейсні компоненти звертаються до апаратури не безпосередньо, а через функції операційної системи, що називаються API (Application Program Interface – програмний інтерфейс застосування). Функції API знаходяться в динамічних бібліотеках (DDL, Dynamic Link Library), що розподіляються між усіма застосуваннями. Ці бібліотеки називаються динамічними тому, що функції які в них знаходяться не підключаються до кожного файлу що виконується перед виконанням програми, а викликаються під час звернення до них.
Підтримка віртуального адресного простору для кожного застосування. Кожному застосуванню доступно простір адрес оперативної пам’яті розміром до 4 Гбайт.2 Операційна система відображає його в фізичну адресу і забезпечує захист один від одного.
Можливість обміну даними між застосуваннями. Застосування можуть обмінюватися даними через буфер обміну, механізми DDE (Dynamic Data Exchange – динамічний обмін даними) та OLE (Object Linking and Embedding – зв’язок та впровадження об’єктів).
Можливість запуску старих програм. В 32-розрядних версіях Windows можна виконувати 16-розрядні Windows і програми написані під MS-DOS.
