Similar presentations:
C++ (1)
1. Языки программирования
Характеристика языка программирования C++2. История создания и поколение
В 1982 году Бьерн Страуструп начал работать над изменениями, которые
должны были вывести C with classes из состояния, сформулированного
самим создателем как "средний язык".
Его особенностью стало то, что он преобразовывал код C with classes в C.
Сам же преобразованный код уже передавался компилятору языка C.
Такой вариант давал возможность пользоваться компилятором большему
количеству людей, а также использовать его на уже имеющейся Unixинфраструктуре.
Язык сменил своё название несколько раз в процессе обновления. Сначала
он назывался C84, поскольку в сообществе его периодически называли
просто C. Однако это название тоже вводило в заблуждение, так как было
больше похоже на новый стандарт C, чем на надмножество языка. Да и от
проблемы прошлого названия это не избавляло. В итоге язык стал
именоваться C++, то есть C и оператор инкремента.
Язык программирвоания C++ относится к 3 поколению.
3. Классификационная группа и особенности трансляции
C++ можно классифицировать по следующим критериям:
1. По способу исполнения: компилируемый язык. Код преобразуется в машинный код до запуск
а программы — в отличие от интерпретируемых языков.
2. По типу: статически типизированный. Проверка типов переменных выполняется на этапе ком
пиляции, что повышает надёжность и производительность программы.
Процесс трансляции (компиляции) C++ состоит из нескольких фаз, определённых стандартом ISO
/IEC 14882.
C++ мощный мультипарадигменный компилируемый язык с гибкой системой трансляции. Его ос
обенности (раздельная компиляция, шаблоны, исключения) требуют понимания процесса компил
яции для эффективной разработки и отладки.
4. Область применения
C++ — язык общего назначения с высокой производительностью и гибкостью. Благодаря
сочетанию низкоуровневых возможностей (как в C) и высокоуровневых абстракций (ООП,
шаблоны и т. д.) он применяется в самых разных сферах.
Операционные системы. Части Windows, macOS, Linux написаны на C/C++.
Игровые движки: Unreal Engine, CryEngine.
Математические пакеты: библиотеки для линейной алгебры (BLAS, LAPACK), численных
методов.
Банковские системы: обработка транзакций, риск-менеджмент, аналитика.
Графические редакторы: Adobe Photoshop, Illustrator, Premiere Pro.
Базы данных: MySQL, PostgreSQL.
Сетевые протоколы: реализация TCP/IP, VoIP, WebRTC.
5. Какие инструментальные средства используются для разработки C++
Для разработки на C++ используются различные инструментальные средства, которые можно
разделить на несколько категорий: интегрированные среды разработки (IDE), компиляторы,
системы сборки, отладчики, инструменты статического анализа и тестирования.
IDE предоставляют комплексный набор инструментов для написания, компиляции, отладки и управления
проектами. Некоторые популярные IDE для C++: Visual Studio, CLion, Eclipse CDT.
Компиляторы преобразуют код C++ в машинный код. Некоторые распространённые компиляторы: MSVC
(Microsoft C++ Compiler), Intel C++ Compiler.
Системы сборки управляют процессом компиляции нескольких исходных файлов для разных конфигураций
и платформ. Примеры: CMake, MSBuild, NMAKE.
Отладчики помогают находить и исправлять ошибки в коде: GDB (GNU Debugger), WinDbg, LLDB.
Дополнительные инструменты
Онлайн-компиляторы (например, Codepad, GCC GodBolt, IdeOne). Позволяют писать, компилировать и
запускать код прямо в браузере, удобны для обучения или быстрой проверки фрагментов кода.
Системы контроля версий (Git, SVN и др.). Используются для управления изменениями в коде.
6. Особенности языка
Особенности языка C++:
Компилируемость. Код преобразуется в машинный код до запуска программы, что обеспечивает высокую производит
ельность.
Статическая типизация. Типы переменных проверяются на этапе компиляции —
это повышает надёжность и скорость выполнения.
Низкоуровневый контроль. Прямой доступ к памяти через указатели, ручное управление ресурсами (new/delete).
Богатая стандартная библиотека (STL). Включает контейнеры (vector, list, map), алгоритмы, средства ввода-выво
да, многопоточность и др.
Совместимость с C. Большая часть кода на C работает в C++ без изменений.
Шаблоны (templates). Позволяют писать обобщённый код, работающий с разными типами данных.
Обработка исключений. Механизм try/catch/throw для структурированной обработки ошибок.
Пространства имён (namespaces). Позволяют группировать идентификаторы и избегать конфликтов имён.
Перегрузка операторов. Возможность переопределять поведение операторов для пользовательских типов.