Соболь
М.В., Астапенко Н.В.
Северо-Казахстанский
Государственный Университет им.М.Козыбаева, Республика Казахстан
Язык программирования С++: этапы эволюции
и современное состояние
Язык программирования С
не нуждается в защите. По крайней мере, последние 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.
·