2. Об'єктно-орієнтовані мови програмування

Об'єктно-орієнтовані мови програмування користуються останнім часом великою популярністю серед програмістів, оскільки вони дозволяють використовувати переваги об'єктно-орієнтованого підходу не тільки на етапах проектування і конструювання програмних систем, але і на етапах їх реалізації, тестування і супроводу.

Перша об'єктно-орієнтована мова програмування Simula 67 була розроблена в кінці 60-х років в Норвегії. Автори цієї мови дуже точно вгадали перспективи розвитку програмування: їх мова набагато випередила свій час. Проте сучасники (програмісти 60-х років) опинилися не готові сприйняти цінності мови Simula 67, і вона не витримала конкуренції з іншими мовами програмування (перш за все, з мовою Fortran). Прохолодному відношенню до мови Simula 67 сприяла і та обставина, що вона була реалізована як мова, що інтерпретувалася (а не компільований), що було абсолютно неприйнятним в 60-і роки, оскільки інтерпретація пов'язана із зниженням ефективності (швидкості виконання) програм.

Але достоїнства мови Simula 67 були відмічені деякими програмістами, і в 70-і роки було розроблено велике число експериментальних об'єктно-орієнтованих мов програмування: наприклад, мови CLU, Alphard, Concurrent Pascal і ін. Ці мови так і залишилися експериментальними, але в результаті їх дослідження були розроблені сучасні об'єктно-орієнтовані мови програмування.

Огляд деяких сучасних об'єктно-орієнтованих мов програмування.

Smalltalk

Мова Smalltalk була розроблена командою Xerox Palo Alto Research Center Learning Research Group як програмна частина Dynabook - фантастичного проекту Алана Кея. В основу були покладені ідеї Simula.. Smalltalk є одночасно і мовою програмування, і середовищем розробки програм. Це чисто об'єктно-орієнтована мова, в якій абсолютно все розглядається як об'єкти; навіть цілі числа - це класи. Услід за Simula, Smalltalk є найважливішою об'єктно-орієнтованою мовою, оскільки вона не тільки зробила вплив на подальші покоління мов програмування, але і заклала основи сучасного графічного інтерфейсу користувача, на яких безпосередньо базуються інтерфейси Macintosh, Windows і Motif.

Відомо п'ять випусків мови Smalltalk, що позначаються по року їх появи: Smalltalk-72 -74. -76, -78, -80. Реалізації 1972 і 1974 років заклали основу мови, зокрема ідею передачі повідомлень і поліморфізм, хоча механізм спадкоємства ще не з'явився. У подальших версіях повноправне громадянство отримали класи; цим досягла завершення точка зору, що все складається з об'єктів. Smalltalk-80 був перенесений на багато комп'ютерних платформ.

В основу мови покладено дві прості ідеї:

· все є об'єктами;

· об'єкти взаємодіють, обмінюючись повідомленнями.

Великим недоліком Smalltalk є великі вимоги до пам'яті і низька продуктивність отриманих програм. Це пов'язано з не дуже вдалою реалізацією об'єктно-орієнтованих особливостей.

C++

Мова програмування C++ була розроблена Бьерном Страуструпом, співробітником At&t Bell Laboratories. Безпосереднім попередником C++ є З with Classes, створений тим же автором в 1980 році. Мова З with Classes, у свою чергу, була створена під сильним впливом З і Simula. C++ - це в значній мірі надбудова над С. В певному значенні можна назвати C++ покращуваним З, тим З, який забезпечує контроль типів, перевантаження функцій і ряд інших зручностей. Але головне в тому, що C++ додає до З об'єктну орієнтованість.

Відомо декілька версій C++. У версії 1.0 реалізовані основні механізми об'єктно-орієнтованого програмування, такі як одиночне спадкоємство і поліморфізм, перевірка типів і перевантаження функцій. У створеній в 1989 році версії 2.0 знайшли віддзеркалення багато додаткових властивостей, що виникли на базі широкого досвіду застосування мови численним співтовариством користувачів. У версії 3.0 (1990) з'явилися шаблони і обробка виключень. C++ продовжує удосконалюватися і в даний час, так в 1998 році вийшла нова версія стандарту, що містить в собі деякі досить істотні зміни. Мова стала основою для розробки сучасних великих і складних проектів.


Common Lisp Object System (CLOS)

На початку 80-х років під впливом ідей об'єктно-орієнтованого програмування виникла серія нових діалектів Lisp, багато хто з яких був орієнтований на представлення знань. Успіх в стандартизації Common Lisp стимулював спроби стандартизувати об'єктно-орієнтовані діалекти в 1986 році.

Оскільки новий діалект повинен був стати надбудовою над Common Lisp, він отримав назву Common Lisp Object System (Об'єктна система Common Lisp) або, скорочено, - CLOS. Серйозний вплив на проект CLOS зробили мови Newflavors і Commonloops. Після дворічної роботи, в 1988 році була опублікована повна специфікація CLOS.

CLOS повинен бути:

· бути стандартним розширенням мови, що включає всі найбільш корисні властивості існуючої об'єктно-орієнтованої парадигми;

· забезпечити ефективний і гнучкий інтерфейс програміста, що дозволяє реалізувати більшість прикладних завдань;

· проектуватися як розширюваний протокол, так, щоб можна було змінювати його поведінку, тим самим стимулюючи подальші дослідження в області об'єктно-орієнтованого програмування .

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

Ada

У 1983 році під егідою Міністерства Оборони США була створена мова Ada. Мова чудова тим, що дуже багато помилок може бути виявлено на етапі компіляції. Крім того, підтримуються багато аспектів програмування, які часто віддаються на відкуп операційній системі (паралелізм, обробка виключень). У 1995 році був прийнятий стандарт мови Ada 95, яка розвиває попередню версію, додаючи в неї объекно-ориентированность і виправляючи деякі неточності. Обидві ці мови не отримали широкого розповсюдження поза військовими і іншими великомасштабними проектами (авіація, залізничні перевезення). Основною причиною є складність освоєння мови і достатньо громіздкий синтаксис.

Безпосередніми попередниками Ada є Pascal і його похідні, включаючи Euclid, Lis, Mesa, Modula і Sue. Були використані деякі концепції Algol-68, Simula, CLU і Alphard.

Розробники Ada перш за все турбувалися про:

· надійності і експлуатаційних якостях програм;

· програмуванні як різновиді людської діяльності;

· ефективності.

Eiffel

Автор Eiffel Бертран Мейер (Bertrand Meyer) створював не тільки мову об'єктно-орієнтованого програмування, але і інструмент проектування програм.

Не дивлячись на сильний вплив Simula, Eiffel - цілком самостійна об'єктно-орієнтована мова зі своїм власним середовищем розробки. Eiffel підтримує динамічне скріплення і статичну типізацію, тим самим забезпечуючи гнучкість інтерфейсів класів у поєднанні з безпечним використанням типів. У Eiffel є декілька важливих рис, що підтримують жорсткіший стиль програмування, зокрема класи, що параметризуються, твердження і виключення. Мейєр вважає, що узагальнені класи добре доповнюють спадкоємство, враховуючи горизонтальний рівень спільності; нові класи на одному рівні ієрархії можна створювати, використовуючи тип як параметр, а не створюючи практично однакові підкласи.

Невід'ємною частиною мови є умови поста, тобто твердження, які повинні виконуватися при вході в метод і виході з нього. Порушення твердження викликає виняткову ситуацію. Її можна перехопити, обробити і спробувати викликати той же метод ще раз.

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

Eiffel надає закінчене середовище розробки програм, включаючи спеціальний редактор з виділенням синтаксису, генератор документації, бібліотеки класів і броузер. Крім того, підтримуються засоби управління кодом і збіркою програм.

Java

З 1995 року почала широко розповсюджуватися нова об'єктно-орієнтована мова програмування Java, орієнтована на мережі комп'ютерів і, перш за все, на Internet. Синтаксис цієї мови нагадує синтаксис мови C++, проте ці мови мають мало загального. Java мова, що інтерпретується: для неї визначено внутрішнє уявлення (bytecode) і інтерпретатор цього уявлення, які вже зараз реалізовані на більшості платформ. Інтерпретатор спрощує відладку програм, написаних на мові Java, забезпечує їх переносимість на нові платформи і адаптується до нових оточень. Він дозволяє виключити вплив програм, написаних на мові Java, на інші програми і файли, що є на новій платформі, і тим самим забезпечити безпеку при виконанні цих програм. Ці властивості мови Java дозволяють використовувати його як основна мова програмування для програм, поширюваних по мережах (зокрема, по мережі Internet).


Object Pascal

Object Pascal створювався співробітниками компанії Apple Computer (деякі з яких були учасниками проекту Smalltalk) спільно з Никлаусом Віртом (Niklaus Wirth), творцем мови Pascal. Object Pascal відомий з 1986 року і є першою об'єктно-орієнтованою мовою програмування, яка була включена в Macintosh Programmer's Workshop (MPW), середовище розробки для комп'ютерів Macintosh фірми Apple.

У цій мові немає методів класу, змінних класу, множинного спадкоємства і метаклассов. Ці механізми виключені спеціально, щоб зробити мову простою для вивчення початкуючими "об'єктними" програмістами.

Система візуального об’єктна-орієнтовного проектування Delphi.

Поява Delphi не могло пройти не поміченим серед багатьох користувачів комп’ютерів. Оцінки експертів, які вивчали можливості цього нового продукта фірми Borland, зазвичай схвального типу. Основне достоїнство Delphi є в тому, що тут реалізована ідея візуального програмування. Середовище візуального програмування перетворює процес створення програми в задоволення і легко зрозумілий конструйований додаток з великого набору графічних і структурних примітивів.

Система Delphi дозволяє вирішувати багато задач, зокрема:

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

o         Швидко створювати (навіть початківцям) віконний інтерфейс з професійним виглядом для різних додатків.

o         Створювати потужні системи роботи з локальними і віддаленими базами даних.

o         Створювати довідкові системи (файли .hlp) для своїх додатків і багато іншого.

Delphi – система, яка досить швидко розвивається. Перша версія - Delphi 1.0 була видана в лютому 1995 році. А потім нові версії випускалися щороку.

Кожна наступна версія Delphi доповнювала попередню. Більшість версій Delphi видається в декількох варіантах: Standart – стандартному, Professional – професійному, Client\Server – клієнт\сервер, Enterprise – розробка баз даних предметних областей. Останні варіанти – Client\Server і Enterprise, в цьому відношенні найбільш потужні.


Висновки

Об'єктно-орієнтовані системи дають ширший спектр багатократного використання текстів програм. Бібліотек об'єктів також можна набувати від незалежних постачальників. В даний час найактивніше купують такі бібліотеки класів для створення призначених для користувача інтерфейсів з піктограмами. Розробка і написання таких інтерфейсів з нуля - завдання нелегке. Компанії типу Apple і Whitewater Group поставляють інструментарії для швидкої побудови таких інтерфейсів на основі декількох базових класів типу Window, Menu, Scrollbar і Icon. Користувачі можуть використовувати як ці класи, так і їх підкласи, що додають в інтерфейс, наприклад, спеціальні піктограми.

ООС легко підтримуються. Четверта перевага полягає в способі комплектування об'єктно-орієнтованих програмних модулів. Традиційне ПО складається з даних і процедур, здійснюючий доступ і зміну даних. Дані і процедури комплектуються окремо, тому зміна структури даних впливає на різні модулі, написані різними користувачами. У об'єктно-орієнтованій системі дані і процедури розглядаються разом як частина одного пакету - об'єкту. При зміні даних всі задіяні процедури легко ідентифікуються і змінюються одночасно. Оскільки зміна розповсюджується тільки на одну область системи, його побічний вплив на всю систему зменшується.

Унаслідок цих переваг, а також ще ряду причин, ООП є в даний час найперспективнішим, поширенішим і ефективнішим напрямом в програмуванні.


Використана література:

1.         Г. Буч «Объектно-ориентированный анализ и проектирование с примерами приложений на С++» Пер. с англ. - М.: Бином; СПб.: Невский диалект, 1999.

2.         В. Фаронов «Deiphi 6» - СПб.: Питер, 2002.

3.         Э. Ишкова «C++ начала программирования» - М.: Бином, 2001.

4.         С. Немнюгин, Л. Перколаб «Изучаем Turbo Pascal» - СПб.: Питер, 2002.


Информация о работе «Обєктно-орієнтовне програмування»
Раздел: Информатика, программирование
Количество знаков с пробелами: 25988
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
29682
0
0

... системах наукової класифікації. Однак перш ніж зануритися в об’єктно-орієнтовану розробку, давайте розглянемо деякі з властивостей, загальні для класу "об'єктів". Абстракція Ціль об'єктно-орієнтованого програмування полягає в тому, щоб побачити в задачі абстракції об'єктів реального світу. Що за реальні об'єкти малися на увазі? Буквально будь-які, аби вони давали представлення про функці ...

Скачать
158519
16
2

... ліворуч. Перевантажені операції помістити в потік і взяти з потоку повинні об’являтися як дружні, якщо вони повинні мати прямий доступ до закритих елементів класу з міркувань продуктивності. 2. Розробка власного класу clsString   2.1 Загальний алгоритм вирішення Створимо базовий клас TPString у якому розмістимо мінімальнонеобхідні компоненти, але при цьому цей клас вже буде функці ...

Скачать
27117
2
10

... він може переміщувати у своїй частині екрану, а далі все теж саме, як і при грі одного гравця. 2. Постановка задачі Метою курсового проекту є реалізація гри «Арканоід» на основі XNA Framework, що буде виконувати такий список функцій: а) Функціонування та відображення меню. Переключення між пунктами меню та виділення поточного пункту. б) Читання з файлу розташування блоків та особливостей, ...

Скачать
17353
1
5

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

0 комментариев


Наверх