C++
C++ | |
---|---|
Семантика | мультипарадигмальный: объектно-ориентированное, обобщённое, процедурное, метапрограммирование |
Тип исполнения | компилируемый |
Система типов | статическая |
Основные реализации | GNU C++, Microsoft Visual C++, Intel C++ compiler, Open64 C++ Compiler, Clang, Comeau C/C++ , Embarcadero C++ Builder, Watcom C++ compiler, Digital Mars C++, Oracle Solaris Studio C++ compiler, Turbo C++ |
Диалекты | ISO/IEC 14882 C++ |
C++ (читается как си плюс плюс) — компилируемый, статически типизированный язык программирования общего назначения. Язык программирования С++ это улучшенная версия языка программирования С (Си)[1].
История
Язык программирования С++ возник в начале 1980-х годов. Бьёрн Страуструп, сотрудник компании Bell Labs, предложил некоторые улучшения языка программирования С для своих собственных нужд. Бьёрн Страуструп работал над теорией очередей при телефонных звонках в компании Bell Labs. Разрабатывая приложения, имитирующие входящие телефонные звонки, он обнаружил, что попытка использовать существовавший в то время языки моделирования оказалась не эффективной. Например язык программирования Simula обладает хорошим функционалом, но скорость его работы слишком низкая, а язык BCPL достаточно быстр, но он слишком близок к языку программирования низкого уровня и не подходит для разработки крупномасштабного программного обеспечения[2].
Проанализировав возможности существующих языков программирования, Бьёрн Страуструп решил дополнить язык программирования C (преемник языка программирования BCPL) функциями, доступными в языке Simula. В то время, язык программирования С являлся базовым языком операционной системы UNIX, на которой работали компьютеры Bell. Язык программирования С быстр, многофункционален и портативен. Бьёрн Страуструп добавил к языку программирования С возможность обрабатывать классы и объекты. В результате задачи моделирования были решены за счет использования классов, подобных языку программирования Simula и времени вычислений, за счет скорости языка программирования C[3].
В язык программирования C были добавлены классы с инкапсуляцией, наследование классов, строгая проверка типов, встроенные функции и аргументы по умолчанию. В 1980 году появилась первая версия языка программирования С, которая первоначально называлась «С with classes» («си с классами»).
Разрабатывая язык программирования С++, Бьёрн Страуструп для работы с классами написал компьютерную программу cfront, которая представляла собой транслятор, преобразующий исходный код и классы языка программирования «С with classes» в исходный код простого языка программирования С. Разработанный Бьёрном Страуструпом язык программирования неожиданно приобрел большую популярность среди программистов, за счет того, что[4]:
- разработанный язык программирования получился универсальным со статическими типами данных, эффективностью и переносимостью;
- язык программирования полностью поддерживает различные стили программирования, включая процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщенное программирование;
- язык программирования предоставляет программисту широкую свободу свободу выбора действий;
- максимально поддерживает совместимость с языком программирования C, что позволяет легко переходить с одного языка программирования на другой.
Выбор языка программирования C в качестве основы для создания нового языка программирования С++ Бьёрн Страуструп объяснял следующими фактами:
- это многоцелевой, лаконичный и относительно низкоуровневый язык;
- он подходит для большинства системных задач;
- программный код языка выполняться на любых компьютерах;
- подходит для операционной системы UNIX.
В 1983 году в язык программирования «С with classes» были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, ссылки, константы, пользовательский контроль над управлением доступной памятью, улучшенная проверка типов и новые стили аннотаций. Полученный в результате язык программирования больше не являлся просто улучшенной версией классического языка программирования C и был переименован из «С with classes» в «C++».
В 1985 году состоялся первый коммерческий релиз языка программирования С++. Сгенерированное название языка программирования С++ происходит от оператора приращения унарного суффикса «++», который увеличивает значение переменной на единицу[5].
Использование языка C++
В отличие от других языков программирования, на C++ можно запрограммировать все, что угодно. Этот язык программирования может выполнять действия, требующие определенных инструкций, таких как векторные инструкции, которые позволяют выполнять несколько операций на одном процессорном ядре одновременно. C++ разработан таким образом, что его код может быть скомпилирован для разных платформ (операционных систем). Например, браузер Chrome, который в основном написан на языке программирования C++, работает в операционных системах Windows, Linux и macOS. Ни один другой язык не обладает такой функциональностью[6].
Существует множество примеров использования языка программирования C++, поскольку его кодовая база огромна. На нем написано все, от микрокода дефибриллятора до операционных систем и компиляторов других языков программирования.
Например, при записи голосового сообщения для кодирования звука используется кодек, написанный на языке программирования C++. Кодированный звук передается по сети с помощью сетевой карты через маршрутизатор и декодируется на сервере. Все программное обеспечение в этой цепочке передачи голосового сообщения написано на языке программирования C++.
Языке программирования C++ подходит для создания проектов 3D-визуализации, требующих эффективного управления большими объемами данных. Благодаря своей производительности C++ используется для разработки компьютерных игр, операционных систем и браузеров. На С++ разрабатывают приложения и программы, которые используют ежедневно миллионы пользователей по всему миру. Например, серверный код Spotify написан на языке программирования C++, и он также используется при обработке и воспроизведении видео на YouTube[7].
Язык программирования C++ был отмечен на церемонии вручения премии «Оскар»: Марк Элендт, победитель в номинации «Лучшие спецэффекты», поблагодарил комитет по стандартизации языка программирования С++ за создание и разработку систем визуальных эффектов и анимации, которые написаны на C++[8].
Преимущества и недостатки C++
Преимущества
Преимущества языка программирования C++[9]:
- Для вспомогательных операций не требуется никаких ресурсов.
- Используется метапрограммирование — это возможность делегировать большую часть работы компилятору.
- Благодаря «строгости» написания программного кода, уже на этапе компиляции ясно, что будет делать программа. Таким образом, на этапе компиляции можно выполнять некоторые вычисления и оптимизацию, чтобы ускорить работу программы.
- Язык программирования С++ позволяет писать гибкие и быстро выполняющиеся программы. В других же языках программирования за сложность, универсальность, красоту и ясность приходится платить скоростью выполнения программ.
- В C++ сложные структуры выражений становятся простым и быстрым микрокодом.
Недостатки
Недостатки языка программирования C++[10]:
- C++ трудный для изучения язык программирования;
- Чтобы начать правильно программировать, придется долго изучить язык программирования, дольше чем другие языки;
- Существует миф о том, что программист, работающий на C++, «стреляет себе в ногу»: легко написать неправильно работающую программу, не заметить этого, но ситуация меняется, основные обновления C++ выпускаются каждые три года, и на этапе компиляции выполняется множество проверок, чтобы исключить неправильное написание программного кода;
- Трудно использовать зависимости в C++. Если что-то не работает или нет правильного пакета, то получение правильных зависимостей обычно становится проблемой для программиста. Необходимо вручную загрузить исходные тексты необходимых библиотек со всеми зависимостями;
- Необходимо следить за параметрами компиляции. Если есть ошибка в параметрах компилятора или версии компилятора, программа не будет собрана или не будет работать должным образом, могут возникать конфликты версий.
Литература
- Microsoft Corporation. Разработка приложений на Microsoft Visual C++ 6.0. — Москва: Издательско-торговый дом «Русская Редакция», 2000. — 576 стр.
- Мейерс С. Эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов. — Москва: ДМК Пресс, 2014. — 294 с.
- Прата С. Язык программирования C++ (C++11). Лекции и упражнения, 6-е издание — Москва: Вильямс, 2012. — 1248 с.
- Страуструп Б. Язык программирования С++. Специальное издание. — Москва: Издательство Бином, 2011. — 1136 с.
- Элджер Дж. C++. Библиотека программиста. — Санкт-Петербург: Питер, 2000. — 320 с.
Примечания
- ↑ Справочник по языку C++ . Microsoft. Дата обращения: 18 сентября 2023.
- ↑ История возникновения языка программирования С++ . Основы программирования на языках Си и C++ для начинающих. Дата обращения: 18 сентября 2023.
- ↑ Язык C++ (неопр.). Программирование. Дата обращения: 18 сентября 2023.
- ↑ C++ . Мегабук - Универсальная энциклопедия Кирилла и Мефодия. Дата обращения: 18 сентября 2023.
- ↑ Введение в C++ . Сайт о программировании - Метанит. Дата обращения: 18 сентября 2023.
- ↑ Языки C и C++. Где их используют и зачем? . Образовательные статьи и переводы - все для программиста. Дата обращения: 18 сентября 2023.
- ↑ Зачем писать на C++ в 2022 году? . Хабр. Дата обращения: 18 сентября 2023.
- ↑ Основы С++ . Академия Яндекса. Дата обращения: 18 сентября 2023.
- ↑ Обзор языка программирования С++ . Школа программирования - Прогкидс. Дата обращения: 18 сентября 2023.
- ↑ Выбираем язык программирования: что нужно знать о С++ . Онлайн платформа для самообразования - Скилбокс. Дата обращения: 18 сентября 2023.
Ссылки
- Основы С++
- Зачем писать на C++?
- Справочник по языку C++
- Обзор языка программирования С++
- Языки C и C++. Где их используют и зачем?
- Выбираем язык программирования: что нужно знать о С++
Данная статья имеет статус «проверенной». Это говорит о том, что статья была проверена экспертом |