Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Передмова. 3. Нові концепції програмування

Передмова

План

 

2. Історія

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

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

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

У 70-ті роки такі мови програмування, як С та Pascal, допомогли людству увійти в епоху структурного програмування, яке на той час відчайдушно потребувало наведення у цій області порядку. Язик С надав в розпорядження програмістів інструменти, необхідні для структурного програмування, а також забезпечив створення компактних, швидко працюючих програм і можливість адресації апаратних ресурсів (наприклад, можливість керування портами зв’язку і накопичувачами на магнітних дисках). Ці властивості допомогли язику С стати господарюючим язиком програмування у 80-ті роки. В той же час з’явилася і нова модель програмування - об’єктно-орієнтоване програмування, або ООП, втіленням якого стала така мова як С++.

2. Історія

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

 

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

 

За останні роки у сфері програмного забезпечення відбувся ряд значних змін. В результаті пошуку нових ідей програмування було розроблено три нові концепції програмування:

· об’єктно-орієнтоване програмування (ООП);

· уніфікована мова моделювання (UML);

· спеціалізовані засоби розробки програмного забезпечення.

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

 

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

С, Pascal, FORTRAN та інші схожі з ними мови програмування відносяться до категорії процедурних мов. Кожен оператор такої мови є вказівкою комп’ютеру виконати певну дію. Програміст створює перелік інструкцій, а комп’ютер виконує дії, що відповідають цим інструкціям.

Як би ефективно не використовувався структурний підхід, він не дозволяє в достатній мірі спростити великі складні проекти. Коли розмір програми великий, список команд стає доволі громіздким. Небагато програмістів здатні утримувати в голові більш ніж 500 рядків програмного коду.

Крім того, у процедурній програмі існує ще й проблема неконтрольованого доступу до даних. В чому суть цієї проблеми? В процедурній програмі, що написана, наприклад, мовою С, існує два типи даних. Локальні дані знаходяться всередині функції й призначені для використання виключно цією функцією. Якщо існує необхідність спільного використання одних і тих самих даних кількома функціями, то дані повинні бути оголошені як глобальні. А це, як правило, стосується тих даних програми, які є найбільш важливими. Великі програми зазвичай містять велику кількість функцій та глобальних змінних. Проблема процедурного підходу полягає в тому, що число можливих зв’язків між глобальними змінними та функціями може бути дуже великим.

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

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

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

Властивості. Прикладами властивостей для людей можуть бути колір очей, вік чи місце роботи; для машин - потужність двигуна, марка машини чи рік виробництва. Таким чином, властивості об’єктів рівносильні даним в програмі, бо вони мають певне значення: наприклад, 20 для віку людини чи 2005 для року випуску автомобіля.

Поведінка. Поведінка - це реакція об’єкта у відповідь на зовнішній вплив. Наприклад, ваш викладач у відповідь на прохання поставити вам залік може дати відповідь “так” чи “ні”. Якщо ви натиснете на гальмо автомобіля, це призведе до його зупинки. Відповідь викладача та зупинка є прикладами поведінки (дії) об’єкта.

Контрольні питання

1. Коли та ким була створена мова С?

2. Відмінності С++ від класичного С

3. Що таке таблиця стандартів ANSI?

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

<== предыдущая лекция | следующая лекция ==>
Метод бухгалтерського обліку | Складові системи фізичного виховання
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 388; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.