Соболь М.В., Астапенко Н.В.

Северо-Казахстанский Государственный Университет им.М.Козыбаева, Республика Казахстан

Язык программирования С++: этапы эволюции и современное состояние

Язык программирования С не нуждается в защите. По крайней мере, последние 20 лет показали, что он является исключительно гибким и продуктивным языком, годным как для системного программирования, так и для создания приложений широкого спектра.

Рассмотрим основные этапы развития языка. Первые версии языка программирования С++ (тогда он назывался «Си с классами») были разработаны в начале 80-х годов Бьярном Страуструпом, сотрудником знаменитой AT&T BellLabs, где ранее были разработаны такие шедевры программирования, как операционная система UNIX и язык программирования С.

По признанию самого автора языка, Си++ никогда не разрабатывался на бумаге. Проектирование, реализация и документирование новых возможностей происходили фактически одновременно. Единственной целью разработки было создание языка, на котором было бы удобно программировать автору и его друзьям. Если вспомнить историю создания языка С, то прослеживаются явные аналогии.

За основу был взят популярный в среде профессиональных разработчиков язык программирования С. Первыми средствами, которыми был расширен С, стали средства поддержки абстракций данных и объектно-ориентированного программирования.

Описание нового языка не было опубликовано сразу. Первыми его пользователями стали сами сотрудники BellLabs. В 1993 впервые была реализована коммерческий транслятор, и сам язык был назван «С++», что можно (имея в виду операцию инкрементирования языка С) трактовать как увеличенный или расширенный язык С.

Первым транслятором языка был препроцессор cfront, транслирующий программу на С++ в эквивалентную программу на С. И только в конце 80-х годов были реализованы прямые трансляторы, не использующие С в качестве промежуточного языка. Пионером среди таких трансляторов стал GNU CC. С этого момента началось его бурное распространение и создание многочисленных реализаций.

Модель реализации ООП была частично позаимствована из языка программирования Simula67 и ориентировалась в основном на возможность эффективной реализации на вычислительных машинах со стандартной архитектурой. C 1985 года в язык были введены новые возможности: множественное и виртуальное наследование, шаблоны функций и классов, обработка исключительных ситуаций.

С момента опубликования и до настоящего момента язык постоянно усовершенствовался и расширялся. Важным этапом в его развитии стала публикация в 1990 году подробного и достаточно строгого описания языка. Сокращенно эту книгу часто называют ARM. Фактически одновременно с этим началась стандартизация языка.

С++ изначально не был «академическим» языком программирования. Его часто подвергали и подвергают критике за неклассический подход к реализации поддержки ООП, даже за то, что его непосредственным предшественником был язык С, который явно не подходил на роль «академического» языка, но очень популярен в среде профессиональных разработчиков. Но С++ вполне укладывается в формулировку парадигмы ООП, данную Страуструпом.

Благодаря своим корням С++ был быстро воспринят разработчиками, уже имеющими опыт программирования на С, но не избалованными дорогими и малоэффективными языками «чистого» объектно-ориентированного программирования.

Противопоставлять С и С++ тоже не стоит. Один из них ортогонально расширяет другой по нескольким направлениям, которые могут быть использованы независимо.

С++ допускает использование в нескольких вариантах. Во-первых, он содержит язык программирования С, точнее, его стандартизованный диалект ANSI C почти целиком. При этом С++ обладает более мощными и строгими правилами проверки типов. Программист волен использовать лишь часть возможностей С++, не сталкиваясь при этом с неприятностями, связанными с неполным знанием языка (то есть воспринимать С++ как «улучшенный» С).

Язык программирования C++ широко используется для разработки программного обеспечения. А именно, создание разнообразных прикладных программ, разработка операционных систем, драйверов устройств, а также видео игр и многое другое. Существует несколько реализаций языка программирования C++ — как бесплатных, так и коммерческих. Их производят проекты: GNU, Microsoft и Embarcadero (Borland). Проект GNU  — проект разработки свободного программного обеспечения (СПО).

В данной статье мы попытались выяснить почему С++ имеет такой успех. Прежде всего потому, что вместо создания «чистого» языка Кернигана и Ричи Страуструп описал язык, который можно использовать.

 

Литература:

1.            Е Зуев, А Кротов «Новые возможности языка Си++», PC Magazine/RussianEdition, #7, 1994.

2.            R. Martin «Why C++», http://www.oma.com

3.            ГрадиБуч. Объектно-ориентированное проектирование с примерами применения: Пер. С англ.- М.: Конкорд, 1992- 519 с.

4.            Страуструп Б. «Язык программирования C++», Бином 2011.

·                

 

 

**