Новини високих технологій
» » Бьерн Страуструп. Історія створення С++

Бьерн Страуструп. Історія створення С++

27-09-2017, 18:20
835
У даній статті мова піде про створення одного з найбільш складних і незамінних мов програмування С++. Його творцем є програміст Бьерн Страуструп, біографія якого являє собою зразок неймовірною цілеспрямованості. Ступінь магістра після закінчення навчання в Орхуському університеті (Данія) на відділенні інформатики. Захист дисертації Кембриджському університеті. Членство в коледжі ім. Черчілля. Переїзд в Нью-Джерсі і робота в комп'ютерному науково-дослідницькому центрі Bell Telephone Laboratories. Керівництво відділом досліджень в області великомасштабного програмування в компанії AT&T Bell Labs. Членство в Національній Академії Інженерії (США). Членство в Техаській академії медицини, інженерії і науки. І безліч заслужених нагород і премій, одна з яких – імені Грейс Мюррей Хопер – була отримана за розробку мови С++.

Що придумав Бьерн Страуструп

Мова програмування C++ має історію, що починається в 1979 році, коли талановитий програміст робив роботу для свого доктора філософії. Мовою, з якими він працював, був Simula, в основному призначений (судячи з назви) для симуляцій. Це перший мова, що підтримує парадигму об'єктно-орієнтованого програмування, яка, як виявив Бьерн Страуструп, була дуже корисною для розробки програмного забезпечення. Однак мова Simula був занадто повільним для практичного використання.

Мова З

Незабаром після цього Бьерн Страуструп почав роботу над «С з класами» (С++), який, як випливає з назви, мав бути надмножеством мови C. Його мета полягала в тому, щоб додати об'єктно-орієнтоване програмування мовою "Сі" (який був і залишається мовою, заслуговує поваги за його мобільність), не жертвуючи швидкістю або низькорівневої функціональністю. Його мова включав класи, базова спадкування, вбудовування, аргументи функції за замовчуванням і сувору перевірку типів на додаток до всіх функцій мови "Сі".

Компілятор

Перший компілятор "С з класами" був названий Cfront і отриманий з компілятора C CPre. Це була програма, призначена для перекладу коду "С з класами" на звичайний C. Цікавий момент, який варто відзначити, полягає в тому, що Cfront був написаний в основному на «С з класами», що робить його самодостатнім компілятором (компілятором, який може скомпілювати себе). Згодом Cfront буде закритий у 1993 році після того, як стало складно інтегрувати в нього нові функції, а саме виключення C++. Тим не менш Cfront зробив величезний вплив на реалізацію майбутніх компіляторів і на операційну систему Unix.

Хронологія виникнення З++

У 1983 році назва мови було змінено з "С з класами" на C++. Оператор в мові C ++ є оператором для збільшення змінної. Це дає деяке уявлення про те, як розглядав Бьерн Страуструп програмування і придуманий ним мову з безліччю нових функцій. Найбільш помітними з них є віртуальні функції, перевантаження функцій, посилання з символом &, ключовим словом const і однорядкові коментарі з застосуванням двох косих рис (це функція, яка береться з мови BCPL).
У 1985 році була опублікована книга Страуструпа під назвою «Мова програмування С++», перекладена на 19 мов і витримала 4 перевидання. У тому ж році C++ був реалізований як комерційний продукт. Мова офіційно ще не стандартизовано, що робить книгу дуже важливою. У 1989 році мову був оновлений, щоб включити захищені і статичні члени, а також спадкування з декількох класів.
У 1990 році було випущено підручник Annotated C++. У тому ж році компілятор Borland Turbo C++ буде випущений як комерційний продукт. Turbo C++ додав безліч додаткових бібліотек, які можуть істотно вплинути на розвиток C++. Хоча останній стабільний випуск Turbo C++ був в 2006 році, компілятор все ще широко використовується. У 1998 році комітет стандартів C++ опублікував перший міжнародний стандарт для C++ISO IEC 14882:1998 який буде неофіційно відомий як C++98. Вважалося, що довідкове керівництво Annotated C++ справило великий вплив на розробку стандарту. Також була включена Стандартна бібліотека шаблонів, яка почала своє концептуальне розвиток в 1979 році. У 2003 році комітет відповів на численні проблеми, про які повідомлялося в їх стандарті 1998 року, і переглянув його відповідним чином. Змінений мову отримав назву C++03.
У 2005 році комітет стандартів C++ випустив технічний звіт (отримав назву TR1), де докладно описувалися різні функції, які вони планували додати до останнього стандарту C++. Новий стандарт був неофіційно названий C++ 0x, оскільки очікується, що він буде випущений приблизно до кінця першого десятиліття. Як не дивно, однак, новий стандарт не буде випущений до середини 2011 року. До цього було випущено кілька технічних звітів, і деякі компілятори почали додавати експериментальну підтримку нових функцій.

Стандарт 2011

В середині 2011 року був завершений новий стандарт C++ (отримав назву C++ 11). Проект бібліотеки Boost справив значний вплив на новий стандарт, і деякі з нових модулів були отримані безпосередньо з відповідних бібліотек Boost.
Деякі з нових функцій включали підтримку регулярних виразів (детальну інформацію про регулярних виразах можна знайти тут), всеосяжну бібліотеку рандомізації, нову бібліотеку часу C++, підтримку атомістики, стандартну бібліотеку потоків (яка до 2011 року як в C, так і в C++ була відсутня), новий синтаксис циклу for, що забезпечує функціональність, аналогічну циклів foreach в деяких інших мовах, ключове слово auto, нові класи контейнерів, більш ефективну підтримку об'єднань і списків ініціалізації масивів і варидических шаблонів.
Цікаво по темі
Шкільний алгоритмічна мова: призначення, правила, команди. Поняття алгоритмічної мови
Шкільний алгоритмічна мова: призначення, правила, команди. Поняття алгоритмічної мови
Найбільш часто інструкції складають у вигляді запису на алгоритмічній мові. Він необхідний для точних приписів всіх кроків і їх виконання. Між
Що таке програмування? Мови програмування. Комп'ютерне програмування
Що таке програмування? Мови програмування. Комп'ютерне програмування
В період появи перших комп'ютерних систем гостро постало питання того, як «навчити» машину сприймати ...
Що таке компілятор - опис
Що таке компілятор - опис
Якщо ви тільки починаєте вивчати програмування або ж просто цікавилися цим питанням, напевно вам на очі потрапляло таємниче слово «компілятор». Це з
Кен Томпсон – розробник операційної системи UNIX та мови C
Кен Томпсон – розробник операційної системи UNIX та мови C
Кен Томпсон – програміст від бога. Головне, що він вже зробив у житті – створення ОС UNIX та мови програмування C. За ці роботи він отримав чимало
Перетворення типів. Функції Round і Trunc в "Паскаль"
Перетворення типів. Функції Round і Trunc в "Паскаль"
Перетворення типів в Pascal дозволяє реалізувати більш широкий клас задач та виконувати операції над величинами різних типів.