специфікацій мови. Наприклад, мова має бути таким, щоб конструкції, що означають близькі за змістом поняття, і виглядали однаково, і, що ще більш важливо, конструкції, що означають різні поняття, повинні виглядати по-різному.
При порівнянні і виборі мов програмування слід враховувати ще дві властивості мови, хоча вони і не впливають безпосередньо на процес розробки програм. Це мобільність і ефективність.
Мобільність мови забезпечує незалежність його апаратних засобів, дозволяє переносити програмне забезпечення з машини на машину з відносною легкістю.
Ефективність мови забезпечує ефективну реалізацію мови (включаючи ефективну реалізацію компілятора і ефективні програми, що генеруються компілятором). В даний час у зв'язку з усе дедалі нижчій вартістю апаратних засобів і все зростаючою вартістю програмного забезпечення необхідність ефективності відходить на другий план у порівнянні з надійністю.
Ефективність створення, тестування та використання програми добре ілюструється мовою АПЛ. При використанні цієї мови для вирішення деякого класу задач проектування, кодування, тестування, модифікація і виконання програми забирає у програміста мінімальну кількість часу і енергії. АПЛ може бути названий ефективним в повному розумінні слова - він дозволяє мінімізувати сумарний час і енергію, що витрачаються на вирішення завдань на ЕОМ.
Опис властивості мов можна ще більш деталізувати, вказавши їх залежність від тих чи інших приватних вимог до мов. Сукупність цих вимог вже досить велика, що ускладнює їх пряме використання для порівняння і вибору мов. Саме тому доцільно зупинитися на перерахованих вище трьох характеристиках і семи властивостях. Однак для адекватного оцінювання характеристик і властивостей необхідно знати їх залежність від численних вимог.
Основу будь-якого об'єктно-орієнтованої мови програмування (ООП) становить об'єктно-орієнтований підхід, що будується на технічній основі, елементи якої утворюють об'єктну модель проектування, яка об'єднує в собі принципи абстракції, інкапсуляції, поліморфізму, модульності та ієрархії [3].
У цілому на сьогоднішній день немає точного визначення ООП або об'єктно-орієнтованої мови програмування. У різній літературі автори дають різне роз'яснення цим термінам. Грунтуючись на цих визначеннях [2; 3; 8], визначимо об'єктно-орієнтована мова програмування як мова програмування, в якості базових елементів якого виступають об'єкти, що мають власні властивості і методи і утворюють ієрархічно організовані класи об'єктів.
Концептуальну базу об'єктно-орієнтованого підходу до розробки програм складають чотири основних механізми [3]: абстракція, інкапсуляція, поліморфізм, спадкування.
З моменту зародження об'єктно-орієнтованого підходу концептуальна база ООП розвивалася і еволюціонувала разом з мовами, що реалізовують даних підхід до програмування. Кожен більш пізній елемент в наборі механізмів розширює функціональні можливості мови в рамках реалізації ООП.
2. Деякі аспекти об'єктно-орієнтованого програмування
Якщо прийоми процедурного програмування концентруються на алгоритмах, то об'єктно-орієнтоване програмування (ООП) концентрується на суті завдання. Елементи програми розробляються відповідно з об'єктами, присутніми в описі завдання. Звідси і термінологія - «Об'єктно-орієнтоване програмування». При цьому первинними вважаються об'єкти (дані), які можуть активно взаємодіяти один з одним за допомогою механізму передачі повідомлень (званого також і механізмом виклику методів). Функція програміста - визначити об'єкти, взаємодія яких після старту програми приведе до досягнення необхідного кінцевого результату.
Загальний підхід до ООП включає в себе наступні концепції [6]:
) наявність типів, визначених користувачем;
) приховування деталей реалізації (інкапсуляція);
) використання коду через успадкування; дозвіл інтерпретації виклику функції під час виконання програми (поліморфізм).
Відомо, що реальні/фізичні об'єкти навколишнього світу володіють трьома базовими характеристиками:
1) набором властивостей, що характеризують об'єкт;
2) здатністю об'єкта змінювати властивості;
3) здатністю реагувати на події як в навколишньому світі, так і всередині самого себе.
Хоча терміни «тип даних» (або просто тип) і «абстрактний тип даних» звучать схоже, вони мають різний зміст. У мовах програмування тип даних (змінної) позначає безліч значень, які може приймати ця змінна. Абстрактний тип даних (АТД) визначається як математична модель з сукупністю операторів,...