§ 8.1. Общие сведения о языке программирования С++
Язык C++ (читается си-плюс-плюс) возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Страуструп решил дополнить язык C возможностями, имеющимися в языке Симула. Из этого языка были позаимствованы возможности объектно-оринтированного программирования (возможность работы с классами и объектами). К 1983 году в язык были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, ссылки, константы, пользовательский контроль над управлением свободной памятью, улучшенная проверка типов и новый стиль комментариев ( // ). Получившийся язык уже перестал быть просто дополненной версией классического C (“C с классами“) и был переименован в «C++». Его первый коммерческий выпуск состоялся в октябре 1985 года.
Просмотр данного материала ограничен! Это закрытая часть сайта, которая доступна только подписчикам! Оформить подписку вы можете на этой странице
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Язык Си для начинающих / #1 — Введение в язык Си
Источник: inf-w.ru
Языки C и C++. Где их используют и зачем?
Сфера применения C и C++ на удивление широка. Даже в сегодняшнем мире, несмотря на всё многообразие современных надёжных инструментов, эти два языка программирования остаются незаменимыми. Давайте же выясним, какие популярные приложения написаны на этих языках и зачем нам использовать их сегодня.
Когда и зачем используются C и C++ ?
1. Операционные системы
Язык C первоначально создавался для системного программирования, поэтому не удивительно, что его так активно применяют при создании операционных систем и программного обеспечения.
Быстрый и энергоэффективный, он достаточно близок к аппаратному слою, что позволяет работать с кодом низкого уровня.
Вот почему он идеален для разработки операционных систем.
Любая операционная система в первую очередь должна быстро запускаться и эффективно управлять системными ресурсами. Например, Linux, Microsoft Windows, Mac OS полностью написаны на языке C, а Android и iOS — частично.
Разработчик на языке C может реализовывать все структуры данных самостоятельно, производя тонкую настройку мельчайших деталей операционной системы. Такая высокая гибкость — весомый аргумент в пользу языка.
В отличие от других языков программирования, язык C не имеет зависимостей времени исполнения. Это означает, что программа может выполняться силами аппаратных средств без участия менеджера памяти, входного или выходного слоя.
2. Программирование встроенных систем
Язык программирования C просто необходим при проектировании встроенных систем.
Главным образом из-за высокой производительности и простоты использования. Язык C очень экономичен в потреблении ресурсов системы, благодаря чему программа выполняется быстро. В результате встроенные системы работают в реальном времени без замедления.
Язык C за 100 секунд [перевод на русский]
Ещё важнее здесь — код на C, будучи платформенно-независимым, не связан с каким-либо конкретным микропроцессором или системой. Так что встроенную программу можно скомпилировать в разных устройствах и платформах с незначительными изменениями или вовсе без них.
Вот почему беспилотные автомобили, умные часы, сенсоры и устройства, использующие технологию Интернета вещей (например, кофемашины), имеют встроенное ПО, целиком написанное на C или C++. В связанных системах C позволяет работать непосредственно с ресурсами памяти и править любую часть кода.
3. Разработка игр и игрового движка
Производительность крайне важна для игры, поэтому выбор языка программирования здесь ограничен.
Являясь самым быстрым на сегодняшний день языком программирования, С++ оказывается одним из лучших для игр в 3D, многопользовательских и других.
Например, Counter-Strike, StarCraft: Brood War, Diablo I, World of Warcraft — все эти игры написаны на C++. Не говоря уже о консолях Xbox и PlayStation, в основе которых лежит программирование C++.
В ядре игрового движка Unity — самого популярного движка для создания видеоигр под несколько операционных систем одновременно — также использовался C++.
Средства разработки C++ могут совладать даже с самой сложной игровой графикой. Они позволяют оптимизировать и регулировать то, как именно будут использоваться ресурсы памяти и структуры данных в игре.
4. Разработка настольных и кроссплатформенных приложений
C++ также можно использовать для создания настольных приложений. Всё благодаря превосходным кроссплатформенным средствам разработки (иногда называемым фреймворками), таким как Qt. Оно позволяет нацелиться на Windows, Linux, macOS, Android и встроенные системы — все c единой кодовой базой. Так что разработка приложений с помощью Qt оказывается отличным решением для тех, кто хочет сэкономить на времени и стоимости программирования.
Стоит упомянуть и о библиотеке SDL, нашпигованной функциями, позволяющими создавать приложения одновременно для Windows, Linux, Android, MacOS и iOS.
Кстати, Photoshop, Illustrator и Adobe Premiere целиком написаны на C++.
Какие ещё есть приложения?
В Facebook перевели часть кода из PHP на язык C++, чтобы сократить затраты электроэнергии в расчёте на одного пользователя. Возможно, облачные системы хранения, базы данных, драйверы устройств и другие виды ПО тоже используют C++.
Сюда также можно отнести банковские и другие приложения, обладающие высокой степенью многопоточности и низким периодом ожидания. Словом — всё, что должно работать быстро и без проблем.
Выводы
Принимая во внимание всё вышесказанное, будем считать, что языки C/C++ вполне годятся для:
- разработки операционных систем,
- программирования встроенных систем,
- разработки игр,
- разработки баз данных,
- разработки настольных и кроссплатформенных приложений (с помощью средств C++).
Также можно отметить, что в проектах, имеющих дело со сложными типами данных, разработка ПО с использованием C++ предотвращает перегрузку данными и похожие проблемы.
Так что, если вы спросите:
Почему мы до сих пор используем C/C++?
Есть короткий ответ: C и C++ гибкие, очень быстрые и эффективные. К тому же они ближе к машинному коду, чем любой другой язык программирования. Именно поэтому в некоторых случаях эти языки просто незаменимы.
Так что наш прогноз таков: в ближайшем будущем язык C не сойдёт с технологической арены. Особенно по причине роста количества устройств, поддерживающих технологию Интернета вещей, а эти устройства крепко завязаны на управлении машинным кодом и памятью.
А вы уже в предвкушении будущего?
Источник: medium.com
C++ — Введение в язык программирования
C ++ — это язык программирования среднего уровня, разработанный Bjarne Stroustrup, начиная с 1979 года в Bell Labs. C ++ работает на различных платформах, таких как Windows, Mac OS и различных версиях UNIX.
- C ++ — это статически типизированный, скомпилированный, универсальный, учитывающий регистр, язык программирования свободной формы, который поддерживает процедурное, объектно-ориентированное и общее программирование.
- C ++ рассматривается как язык среднего уровня , поскольку он содержит сочетание как языковых функций высокого уровня, так и низкоуровневых языков.
- C ++ был разработан Bjarne Stroustrup, начиная с 1979 года в Bell Labs в Мюррей-Хилл, штат Нью-Джерси, в качестве усовершенствования языка C и первоначально назывался C с классами, но позже он был переименован в C ++ в 1983 году.
- C ++ — это надмножество C, и практически любая законная программа C является законной программой на C ++.
Язык программирования использует статическую типизацию, когда проверка типов выполняется во время компиляции, а не во время выполнения.
Объектно-ориентированного программирования
C ++ полностью поддерживает объектно-ориентированное программирование, в том числе четыре столпа объектно-ориентированного развития:
- Инкапсуляцию
- Скрытие данных
- Наследование
- Полиморфизм
Стандартные библиотеки
Стандартный C ++ состоит из трех важных частей —
- Основной язык, предоставляющий все строительные блоки, включая переменные, типы данных и литералы
- Стандартная библиотека C ++ предоставляет богатый набор функций, управляющих файлами, строками
- Библиотека стандартных шаблонов (STL), предоставляющая богатый набор методов, управляющих структурами данных
Стандарт ANSI
Стандарт ANSI — это попытка обеспечить совместимость C ++; этот код, который вы пишете для компилятора Microsoft, будет компилироваться без ошибок, используя компилятор на Mac, UNIX, Windows или Alpha.
Стандарт ANSI был стабильным на некоторое время, и все основные производители компиляторов C ++ поддерживают стандарт ANSI.
Обучение C ++
Самое главное при обучении C ++ — сосредоточиться на концепциях. Цель изучения языка программирования — стать лучшим программистом; то есть стать более эффективными при проектировании и внедрении новых систем и при сохранении старых.
C ++ поддерживает различные стили программирования. Вы можете писать в стиле Fortran, C, Smalltalk и т. д. На любом языке. Каждый стиль может эффективно достигать своих целей, сохраняя при этом время работы и эффективность пространства.
Использование C ++
- C ++ используется сотнями тысяч программистов практически в каждом домене приложения.
- C ++ очень часто используется для написания драйверов устройств и другого программного обеспечения, которые полагаются на непосредственную манипуляцию аппаратными средствами в условиях реального времени.
- C ++ широко используется для обучения и исследований, потому что он достаточно чист для успешного преподавания базовых понятий.
- Любой, кто использовал Apple Macintosh или ПК под управлением Windows, косвенно использовал C ++, потому что основные пользовательские интерфейсы этих систем написаны на C ++.
Источник: unetway.com
0.3 – Введение в C/C++
Язык C был разработан в 1972 году Деннисом Ричи в лабораториях Bell Telephone, прежде всего как язык системного программирования (язык для написания операционных систем). Основными целями Ричи было создание минималистичного языка, который легко компилируется, обеспечивает эффективный доступ к памяти, создает эффективный код и является автономным (не зависит от других программ). Он был разработан, как язык высокого уровня, чтобы дать программисту большой контроль, в то же время поощряя независимость от платформы (аппаратного обеспечения и операционной системы) (то есть не нужно было переписывать код для каждой платформы).
C оказался настолько эффективным и гибким, что в 1973 году Ричи и Кен Томпсон переписали на нем большую часть операционной системы Unix. Многие предыдущие операционные системы были написаны на ассемблере. В отличие от ассемблера, на котором создаются программы, которые могут работать только на определенных процессорах, C обладал отличной портируемостью, что позволило легко перекомпилировать Unix на множестве разных типов компьютеров и ускорило его внедрение. С и Unix были связаны судьбой, и популярность С была частично связана с успехом Unix как операционной системы.
В 1978 году Брайан Керниган и Деннис Ричи опубликовали книгу под названием «Язык программирования Си». Эта книга, широко известная как KR, потому что большинство компиляторов в то время были реализованы по стандартам данной книги.
В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет, чтобы утвердить для C официальный стандарт. В 1989 (комитеты постоянно что-то делают) они закончили и выпустили стандарт C89, более известный как ANSI C. 1990 Международная организация по стандартизации (ISO) приняла ANSI C (с небольшими изменениями). Эта версия C стала известна как C90. В конечном итоге компиляторы стали совместимыми с ANSI C/C90, и программы, для которых требовалась максимальная портируемость, писались в соответствии с этим стандартом.
В 1999 году комитет ANSI выпустил новую версию языка C под названием C99. C99 принял многие функции, которые уже входили в компиляторы в качестве расширений или были реализованы на C++.
C++
C++ (произносится как «си плюс плюс») разрабатывался Бьярном Страуструпом в Bell Labs как расширение C, начиная с 1979 года. C++ добавляет в язык C много новых функций и, возможно, лучше всего воспринимался как надмножество C, хотя это не совсем верно (поскольку C99 представил несколько функций, которых нет в C++). Претензия C++ на известность в первую очередь объясняется тем, что это объектно-ориентированный язык. Что касается того, что такое объект, и чем объектно-ориентированное программирование отличается от традиционных методов программирования, мы рассмотрим это в главе 8 «Основы объектно-ориентированного программирования».
C++ был стандартизирован комитетом ISO в 1998 году (это означает, что комитет ISO ратифицировал документ, описывающий язык C++, чтобы гарантировать, что все компиляторы придерживаются одного и того же набора стандартов). В 2003 году было выпущено незначительное обновление (под названием C++03).
С тех пор были внесены три основных обновления языка C++ (C++11, C++14 и C++17, ратифицированные в 2011, 2014 и 2017 годах соответственно), каждое из которых добавляет дополнительные функции. В частности, в C++11 добавлено огромное количество новых возможностей, и на данный момент он широко считается новой базовой линией. На момент написания статьи C++20 находится в разработке, обещая добавить еще больше новых возможностей. Будущие обновления языка ожидаются каждые три года или около того.
Каждый новый официальный выпуск языка называется языковым стандартом (или спецификацией языка). Стандарты названы в честь года их выпуска. Например, C++15 не существует, потому что в 2015 году не было нового стандарта.
Философия C и C ++
Основополагающую философию проектирования на C и C++ можно охарактеризовать как «доверять программисту», что одновременно замечательно и опасно. C++ разработан, чтобы дать программисту высокую степень свободы делать то, что он хочет. Однако это также означает, что язык часто не мешает вам делать то, что не имеет смысла, потому что он будет предполагать, что вы делаете это по какой-то причине, которую он не понимает. Существует немало ловушек, в которые могут попасть программисты-новички, если их поймают врасплох. Это одна из основных причин, почему знание того, что вам не следует делать в C/C++, почти так же важно, как знание того, что вам следует делать.
Вопрос: В чем C++ хорош?
C++ отлично подходит в ситуациях, когда требуется высокая производительность и точный контроль над памятью и другими ресурсами. Вот несколько распространенных типов приложений, которые, скорее всего, были бы написаны на C++:
- видеоигры;
- системы реального времени (например, для транспортировки, производства и т.д.);
- высокопроизводительные финансовые приложения (например, высокочастотная торговля);
- графические приложения и приложения моделирования;
- высокопроизводительные офисные приложения;
- встроенное программное обеспечение;
- обработка аудио и видео.
Вопрос: Нужно ли мне знать C, прежде чем я начну работать со статьями из этого учебника?
Нет! Начать с C++ – это нормально, и мы научим вас всему, что вам нужно знать (включая подводные камни, которых следует избегать).
Как только вы освоите C++, изучить стандартный C, если вам когда-нибудь это понадобится, будет довольно легко. В наши дни C в основном встречается в нишевых вариантах использования: код, который выполняется на встроенных устройствах; когда вам нужно взаимодействовать с другими языками, которые могут взаимодействовать только с C; и т.д. Для большинства других случаев рекомендуется C++.
Источник: radioprog.ru