Історія створення мови програмування C і C++

01.09.2015

Історія створення мови програмування C і C++

Історія створення мови програмування C і C++

Мова С (читається «Сі») створений на початку 70х років, коли Кен Томпсон і Денніс Рітчі з Bell Labs розробляли операційну систему UNDC Спочатку вони створили частина компілятора З, потім використовували се для компіляції решті частини компілятора З і, нарешті, застосували отриманий в результаті компілятор для компіляції UNIX. Операційна система UNIX спочатку поширювалася у вихідних кодах на З-поміж університетів і лабораторій, а одержувач міг відкомпілювати вихідний код на С в машинний код за допомогою відповідного компілятора С.

Поширення вихідного коду зробило операційну систему UNIX унікальної; програміст міг змінити операційну систему, а вихідний код міг бути перенесений з однієї апаратної платформи на іншу. Сьогодні стандарт POSIX визначає стандартний набір системних викликів UNIX, доступних в С, які повинні бути реалізовані у версіях UNIX, є POSIX-сумісні. Був третьою мовою, який розробили Томсон і Рітчі в процесі створення UNIX; першими двома були, зрозуміло, А і В.

У порівнянні з більш раннім мовою — BCPL, був поліпшений шляхом додавання типів даних певної довжини. Наприклад, тип даних int міг застосовуватися для створення змінної з певним числом бітів (зазвичай 16), в той час як тип даних long міг використовуватися для створення цілої змінної з великим числом бітів (зазвичай 32). На відміну від інших мов високого рівня, міг працювати з адресами пам’яті безпосередньо з допомогою покажчиків і посилань. Оскільки З зберіг здатність прямого доступу до апаратного забезпечення, його часто відносять до мов середнього рівня або в жарт називають «мобільним мовою асемблера».

Що стосується граматики і синтаксису, то С є структурним мовою програмування. У той час як багато сучасні програмісти мислять в категоріях класів і об’єктів, програмісти З думають в категоріях процедур і функцій. В С можна визначити власні абстрактні типи даних, використовуючи ключове слово struct. Аналогічно можна описувати власні цілі типи (перерахування) і давати інші назви існуючими типами даних за допомогою ключового слова typedef. У цьому сенсі є структурним мовою з зародками об’єктно-орієнтованого програмування. Широке поширення мови C на різних типах комп’ютерів (іноді званих апаратними платформами) призвело, на жаль, до багатьох варіацій мови. Вони були схожі, але несумісні один з одним. Це було серйозною проблемою для розробників програм, які потребували написанні сумісних програм, які можна було б виконувати на декількох платформах. Стало зрозуміло, що потрібна стандартна версія C. У 1983р. ANSI (Американський Національний Комітет Стандартів) сформував технічний комітет X3J11 для створення стандарту мови C (щоб «забезпечити недвозначне і машинно-незалежне визначення мови»). У 1989 стандарт був затверджений. ANSI скооперувався з ISO (Міжнародної організації Стандартів), щоб стандартизувати C в міжнародному масштабі; спільний стандарт був опублікований в 1990 році і названий ANSI/ISO 9899:1990. Цей стандарт вдосконалюється досі і підтримується більшістю фірм розробників компіляторів.

Бьерн Страуструп вивільнив об’єктно-орієнтований потенціал шляхом перенесення можливостей класів Simula 67 С. Спочатку новий мову носив ім’я «с З класами» і лише потім став називатися C++. Мова C++ досяг популярності, будучи розробленими в Bell Labs, пізніше він був перенесений в інші галузі та корпорації. Сьогодні це один з найбільш популярних мов програмування у світі. C++ успадковує як хороші, так і погані сторони С.

Бьерн Страуструп:»Я придумав C++, записав його первісне визначення і виконав першу реалізацію. Я вибрав і сформулював критерії проектування C++, розробив його основні можливості та відповідав за долю пропозицій по розширенню мови в комітеті по стандартизації C++, — пише автор найпопулярнішого мови програмування. — Мова C++ багатьом зобов’язаний мови C, і мова C залишається підмножиною мови C++ (але в C++ усунені кілька серйозних прогалин системи типів C). Я також зберіг кошти C, які є досить низькорівневими, щоб справлятися з самими критичними системними завданнями. Мова C, в свою чергу багатьом зобов’язаний своєму попереднику, BCPL; до речі, стиль коментарів // був узятий в C++ з BCPL. Іншим основним джерелом натхнення була мова Simula67. Концепція класів (з похідними класами і віртуальними функціями) була запозичена з нього. Засоби перевантаження операторів і можливість приміщення оголошень в будь-якому місці, де може бути записана інструкція, нагадує Algol68.

Назву C++ вигадав Рік Масситти. Назва вказує на еволюційну природу переходу до нього від C. «++» — це операція збільшення у C. Трохи більш коротке ім’я C+ є синтаксичною помилкою; крім того, воно вже було використано як ім’я зовсім іншої мови. Знавці семантики C знаходять, що C++ гірше, ніж ++C. Назви D мову не отримав, оскільки він є розширенням C і в ньому не робиться спроб зцілятися від проблем шляхом викидання різних особливостей. Спочатку C++ був розроблений, щоб автору і його друзям не доводилося програмувати на асемблері, C або інших сучасних мовах високого рівня. Основним його призначенням було зробити написання хороших програм більш простим і приємним для окремого програміста. Плану розробки C++ на папері ніколи не було; проект, документація та реалізація рухалися одночасно. Зрозуміло, зовнішній інтерфейс C++ був написаний на C++. Ніколи не існувало «Проекту C++» і «Комітету з розробки C++». Тому C++ розвивався і продовжує розвиватися у всіх напрямках, щоб справлятися зі складнощами, з якими стикаються користувачі, а також у процесі дискусій автора з його друзями і колегами».

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

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

C++ у даний час вважається панівною мовою, використовуваним для розробки комерційних продуктів, 90% ігор пишуться на с++ З прменением DirectX.

Короткий опис статті: мова програмування c Історія створення мови програмування C і C++ Мова С (читається «Сі») створений на початку 70х років, коли Кен Томпсон і Денніс Рітчі з Bell Labs розробляли вп

Джерело: Історія створення мови програмування C і C++

Також ви можете прочитати