- •Лекція. Об’єктно-орієнтоване програмування: підхід до організації програми Зміст лекції
- •Передмова
- •Історія
- •Нові концепції програмування
- •Процедурні мови. Недоліки структурного програмування
- •Об’єктно-орієнтований підхід
- •Наслідування
- •Повторне використання коду
- •Користувацькі типи даних
- •Поліморфізм та перевантаження
Лекція. Об’єктно-орієнтоване програмування: підхід до організації програми Зміст лекції
Передмова
Історія
Нові концепції програмування
Процедурні мови. Недоліки структурного програмування
Об’єктно-орієнтований підхід
Класи
Наслідування
Повторне використання коду
Користувацькі типи даних
Поліморфізм та перевантаження
Передмова
Протягом останніх десятиліть комп’ютерні технології розвивались вражаючими темпами. Язики програмування також притерпіли значної еволюції. Поява більш потужних компь’ютерів дала життя більш об’ємним та складним програмам, які, в свою чергу, висвітлювали нові проблеми в області керування програмами, а також їх супроводу.
У 70-ті роки такі мови програмування, як С та Pascal, допомогли людству увійти в епоху структурного програмування, яке на той час відчайдушно потребувало наведення у цій області порядку. Язик С надав в розпорядження програмістів інструменти, необхідні для структурного програмування, а також забезпечив створення компактних, швидко працюючих програм і можливість адресації апаратних ресурсів (наприклад, можливість керування портами зв’язку і накопичувачами на магнітних дисках). Ці властивості допомогли язику С стати господарюючим язиком програмування у 80-ті роки. В той же час з’явилася і нова модель програмування - об’єктно-орієнтоване програмування, або ООП, втіленням якого стала така мова як С++.
Історія
На початку 70-х років Деніс Рітчі (Dennis Ritchie), працівник компанії Bell Laboratories, займався розробкою операційної системи UNIX. Для виконання ціїє роботи Рітчі потрібна була така мова, яка могла б бути краткою, а також забезпечувала б ефективне керування апаратними засобами та створення компактних, швидко працюючих програм. Традиційно такі потреби програмістів задовольняв язик ассемблера, який тісно пов’язаний з внутрішньою машиною мовою комп’ютера. Однак ассемблер - язик низького рівня, тобто він прив’язаний до відповідного типу процесора, тому якщо програму на мові ассемблера необхідно перенести на комп’ютер іншого типу, її потребується переписувати заново з використанням інших алгоритмів. Операційна система UNIX призначалася для робота на комп’ютерах різих типів, а це передбачало використання мови високого рівня програмування, який був би орієнтований на рішення різнобічних задач, а не на конкретно апаратне забезпечення. Рітчі потребував мови, що поєднувала б у собі ефективність та можливість доступа до апаратних засобів, що забезпечується мовами низького рівня, з більш загальним характером та можливістю перенесення, що властиво мовам високого рівня. Тому на основі існуючих на той час старих мов програмування - BCPL та B Рітчі створив мову С.
Вперше в історії мова С була реалізована на комп’ютері DEC PDP-11 у 1972 році. С використовує багато важливих концепцій BCPL та B, а також додає типи даних та інші властивості. Насьогодні практично всі нові операційні системи написані на С або на С++. Протягом двох наступних десятиліть С став доступним для більшості комп’ютерів. С незалежна від апаратних засобів.
В кінці 70-х років С розвивався у те, що зараз відносять до “традиційного С”, “класичного С” або “С Керніана та Рітчі”. Публікація видавництвом Prentice-Hall книги Кернігана та Рітчі “Мова програмування С” звернула широку увагу до цієї мови. Ця публікація стала однією з найбільш вдалих книг з обчислювальної книги за весь час.
C++ - спроба вирішення розробниками мови С задач об’єктно-орієнтованого програмування (Object Oriented Programming, ООР). Створений на твердому фундаменті С, С++ окрім ООП підтримує багато інших корисних інструментів, не жертвуючи при цьому ні потужністю, ні елегантністю, ні гнучкістю С. С++ вже стала універсальною мовою для програмістів усього світу, мовою, на якій написане наступне покоління високоефективного програмного забезпечення.
С++ - розширення С - був розроблений Бьярном Страуструпом в лабораторії центра AT&T Bell Laboratories (Нью-Джерсі, США) у 1979 році. Початкова назва С була змінена на С++ у 1983 році.
Широке розповсюдження С на різних типах комп’ютерів призвело, на жаль, до появи багатьох варіацій мови. Вони були схожі, але несумісні одне з одним. Це було серйозною проблемою для розробників програм, потребуючих написання сумісних програм, які можно було б виконувати на багатьох платформах. Стало зрозумілим, що необхідна стандартна версія С. У 1983 році при Американському Національному Комітеті Стандартів у галузі обчислювальної техніки та обробки інформації був створний технічний комітет X3J11, щоб “забезпечити недвозначне та машино-незалежне визначення мови”. В 1989 році стандарт був затверджений. ANSI (American National Standarts Institute) скооперувався зМіжнародною Організацією Стандартів (International Standards Organization - ISO), щоб стандартизувати С в світовому масштабі; сумісний стандарт був опублікований у 1990 році та названий ANSI/ISO 9899: 1990. Копії цього документа можна замовити в ANSI. Друге видання книги Кернігана і Рітчі, яке вийшло у 1988 році, відображає цю версію, називаєму ANSI C; ця версія мови використовується тепер повсюдно.
Оскільки С - стандартизована, апаратно-незалежна, широко доступна мова, програми, написані на С, часто можуть бути виконані з мінімальними модифікаціями або навіть без них на самих різних комп’ютерних системах.
Незабаром після завершення роботи над першим проектом стандарта сталася подія, які врешті-решт й призвела до значного розширення С++: Олександр Степанов створив бібліотеку стандартних шаблонів (Standart Template Library, STL). Ця бібліотека - потужний й елегантний інструмент програмування. Одразу ж поісля появи першого проекта стандарта комітет ANSI/ISO проголосував за включення бібліотеки стандартних шаблонів у специфікацію С++, що призвело до значного розширення С++ в порівнянні з вихідним визначенням цієї мови.