Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuvannya.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
437.25 Кб
Скачать

Інших мов програмування

На зорі комп'ютерної цивілізації, ще задовго до появи клану IBM PC\XT\AT, на електронних конвеєрах збиралися мало сумісні обчислювальні архітектури такі як AT&T, DEC, Motorola, Bell і ін. Для кожної архітектури створювалася своя операційна оболонка, а нерідко й своя унікальна мова програмування. Для написання того й іншого використалася мова машинних команд. Обмін досягненнями в області інформаційних технологій у таких умовах був досить скрутним – з появою чогось цікавого на одній платформі - наприклад, мови ALGOL і експертних додатків на його основі - і реалізації його на інших платформах були потрібні гігантські затрати людських-годин.

У цих умовах виник проект «Unix» - проект створення універсальної операційної системи. За задумом укладачів проекту ця система повинна бути мобільною - тобто легко переносимою від однієї обчислювальної платформи до іншої - для цього її ядро повинне бути написане мовою високого рівня. Крім того вона має бути універсальною - тобто програма, розроблена під Unix на DEC VAX повинна працювати й на Unix під AT&T.

Мова для ядра Unix покинена була виявляти основну увагу до засобів досить низького рівня, що дозволяє вирішувати самі складні завдання системного програмування. У той момент аналогів такої мови не було.

Ним стала створена в 1972 році Денисом Ритчи мова С, що багато запозичила у свого попередника – BCPL. Одна з первісних цілей створення мови С – замінити розробку програм мовою Асемблера для найбільш складних завдань системного програмування.

Отже, мова створена, Unix написаний, С працює скрізь і на всьому і стає самою популярною мовою системного програмування. Створено стандарт ANSI (Американський Національний Інститут Стандартів) цієї мови.

-5-

Однак улітку 1983 р. відбувається ще один знаменний етап - Брайан Страуструп доповнює С підтримкою класів або засобами об'єктного орієнтування. Джерелом натхнення є мова Simula67. З'являється мова С++ («++» - оператор інкрементації в мові С).

З філософської точки зору виникнення мови С++ можна пояснити у такий спосіб: мова програмування переслідує дві взаємозалежні цілі: вона дає програмістові засіб визначити дії, які слід виконати, і задає набір понять, якими програміст користується, обмірковуючи можливості виконання. В ідеалі для першої мети потрібна мова, «близька до машинного», для того, щоб всі особливості комп'ютера оброблялися простими й ефективними способами, досить зрозумілими з погляду програміста. Саме це й було початковою метою створення С. Для другої мети в ідеалі потрібна мова, «близька до розв'язуваної проблеми», для того, щоб конструкції рішення можна було виразити точно й прямо. Саме це й було початковою метою створення засобів, що розширюють С до С++.

Різниця між С та С++ у першу чергу, полягає в ступені уваги до типів і структур. Основна увага до структур при проектуванні С++ відбиває ріст розміру програм із часу створення мови С. Конструкція С++ дозволяє раціонально структурувати дуже великі програми, так що програму в 25 000 рядків зможе розробити й одна людина, що на традиційному С було б важко.

С++ покликаний вирішити проблему складності при розробці великих сучасних програмних продуктів.

У цей момент багато популярних мов програмування запозичили засоби об'єктного орієнтування в С++: Pascal-Delphi, Visual Basic, Visual FoxPro, Paradox ObjectPal і ін.

-6-

1.2. Особливості та переваги мови CI++

При створенні С++ прагнули зберегти сумісність з мовою С. Більшість програм на С справно працюватимуть і з компілятором С++. С++ має синтаксис, заснований на синтаксисі С.

Нововведеннями С++ порівняно з С є:

  • підтримка об'єктно-орієнтованого програмування через класи;

  • підтримка узагальненого програмування через шаблони;

  • доповнення до стандартної бібліотеки;

  • додаткові типи даних;

  • обробка винятків;

  • простори імен;

  • вбудовані функції;

  • перевантаження операторів;

  • перевантаження імен функцій;

  • посилання і оператори управління вільно розподіленою пам'яттю.

У 1998 році ратифіковано міжнародний стандарт мови С++: ISO/IEC 14882 «Standard for the C++ Programming Language». Поточна версія цього стандарту — ISO/IEC 14882:2003.

Переваги мови C++:Швидкодія.Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби. Масштабованість. На мові C++ розробляють програми для найрізноманітніших платформ і систем. Можливість роботи на низькому рівні з пам'яттю, адресами, портами. (Що, при необережному використанні, може легко перетворитися на недолік.) Можливість створення узагальнених алгоритмів для різних типів даних, їхня спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів. Підтримуються різні стилі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси).

-7-

1.3. Обєктно-орієнтоване програмування на мові С++

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

  • нагадує визначення структури за винятком того, що :

  • воно звичайно містить одну або кілька специфікацій доступу, що задають за допомогою ключ слів public, protected, private;

  • замість ключ слова struct може застосовуватися class (відмінність у доступі до елементів за замовчуванням);

  • воно звичайно містить у собі функції (функції елементи або методи) поряд з елементами даних;

  • звичайно в ньому є деякі спец функції, такі як конструктор (функція з тим же ім’ям, що й сам клас) і деструктор (функція, ім’ям якої є ім’я класу із префіксом- тильдою (~) ).

Керування доступом: У С елементи структури доступні для будь-яких функцій в межах області структури. Це часто приводить до зміни даних через неуважність. У С++ можна обмежити видимість даних і функцій класу за допомогою міток public, protected, private. Мітка-специфікатор доступу застосовується до всіх елементів класу, що випливає за нею, поки не зустрінеться інша мітка або скінчиться визначення класу. Опис:

Мітка доступу

Опис

public

елементи класу доступні для функцій–елементів і інших функцій програми, у якій є представник класу

protected

елементи класу доступні для функцій –елементів даного класу й класів, похідних від нього

private

елементи класу доступні тільки для функцій –елементів даного класу

-8-

У С++ структура, клас і об'єднання розглядаються як типи класів. Структура й клас походять один на одного за винятком доступу за замовчуванням: у структурі елементи мають за замовчуванням доступ public, у той час як у класі - private. Аналогічно структурі, об'єднання замовчуванню надає доступ public.

Елементи класу

  • діляться на дві категорії:

  • дані (data memmbers)

  • код, називаний елементами-функціями (member functions) або методами.

Елемент-функція – це функція, об’явлена усередині визначення класу. Тіло функції може також визначатися усередині визначення класу; у цьому випадку функція називається вбудованою (inline) функцією-елементом. Коли тіло функції визначається поза тілом класу, перед ім’ям функції ставиться префікс із імені класу й операції дозволу видимості (::).

Доступ до елементів даних:

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

Виклик функцій-елементів:

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

Спеціальні функції-елементи:

Від них залежать способи створення, копіювання, перетворення й знищення представників класу (деякі з них неявно викликаються компілятором). Опис:

-9-

Функція

Опис

Конструктор

Ініціалізує представник

Конструктор копії

Ініціалізує новий представник, використовуючи значення вже існуючого представника.

Операція присвоювання

Привласнює вміст представника іншому представникові

Деструктор

робить очищення представників з пам'яті

Операція new

Розподіляє пам'ять під динамічні представники

Операція delete

Звільняє динамічну пам'ять зайняту під динамічні представники

Ф-ції перетворення

Перетворять представники класу до іншого типу

-10-

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