Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsiya.docx
Скачиваний:
43
Добавлен:
14.02.2016
Размер:
51.85 Кб
Скачать

Лекція. Об’єктно-орієнтоване програмування: підхід до організації програми Зміст лекції

  • Передмова

  • Історія

  • Нові концепції програмування

  • Процедурні мови. Недоліки структурного програмування

  • Об’єктно-орієнтований підхід

  • Класи

  • Наслідування

  • Повторне використання коду

  • Користувацькі типи даних

  • Поліморфізм та перевантаження

Передмова

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

У 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 проголосував за включення бібліотеки стандартних шаблонів у специфікацію С++, що призвело до значного розширення С++ в порівнянні з вихідним визначенням цієї мови.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]