Язык программирования c википедия
Языки C и C++. Где их используют и зачем?
Сфера применения C и C++ на удивление широка. Даже в сегодняшнем мире, несмотря на всё многообразие современных надёжных инструментов, эти два языка программирования остаются незаменимыми. Давайте же выясним, какие популярные приложения написаны на этих языках и зачем нам использовать их сегодня.
Когда и зачем используются C и C++ ?
1. Операционные системы
Язык C первоначально создавался для системного программирования, поэтому не удивительно, что его так активно применяют при создании операционных систем и программного обеспечения.
Быстрый и энергоэффективный, он достаточно близок к аппаратному слою, что позволяет работать с кодом низкого уровня.
Вот почему он идеален для разработки операционных систем.
Любая операционная система в первую очередь должна быстро запускаться и эффективно управлять системными ресурсами. Например, Linux, Microsoft Windows, Mac OS полностью написаны на языке C, а Android и iOS — частично.
Разработчик на языке C может реализовывать все структуры данных самостоятельно, производя тонкую настройку мельчайших деталей операционной системы. Такая высокая гибкость — весомый аргумент в пользу языка.
В отличие от других языков программирования, язык C не имеет зависимостей времени исполнения. Это означает, что программа может выполняться силами аппаратных средств без участия менеджера памяти, входного или выходного слоя.
2. Программирование встроенных систем
Язык программирования C просто необходим при проектировании встроенных систем.
Главным образом из-за высокой производительности и простоты использования. Язык C очень экономичен в потреблении ресурсов системы, благодаря чему программа выполняется быстро. В результате встроенные системы работают в реальном времени без замедления.
Ещё важнее здесь — код на 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 не сойдёт с технологической арены. Особенно по причине роста количества устройств, поддерживающих технологию Интернета вещей, а эти устройства крепко завязаны на управлении машинным кодом и памятью.
А вы уже в предвкушении будущего?
Возможно Вам также будет интересно:
Общие сведения о языке программирования С++
Что такое язык программирования?
Язык программирования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.
Программой называют алгоритм составленный на языке исполнителя. Далее под исполнителем мы будем понимать ЭВМ* (электронно-вычислительную машину).
Язык программирования (формальный язык) отличается от естественных языков тем, что предназначен для управления ЭВМ, в то время как естественные языки используются, для общения людей между собой. Большинство языков программирования использует специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.
Со времени создания первых программируемых машин человечество придумало более восьми тысяч языков программирования (включая эзотерические, визуальные и игрушечные). Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты могут владеть десятком и более разных языков программирования. (Подробнее)
Язык программирования С++
C++ (читается си-плюс-плюс) — компилируемый, статически типизированный язык программирования общего назначения, на котором можно создавать программы любого уровня сложности.
Более 20 лет этот язык находится в тройке самых популярных и востребованных языков программирования. (В этом можно убедиться, посетив сайт TIOBE).
Язык возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды.
Bjarne Stroustrup – создатель языка C++
Страуструп решил дополнить язык C возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C).
Вот как об этом говорит сам разработчик языка:
В 1998 году был опубликован первый стандарт языка, известный как C++98, разработанный комитетом по стандартизации. C++ продолжает развиваться, чтобы отвечать современным требованиям. Одна из групп, разрабатывающих язык C++ и направляющих комитету по стандартизации C++ предложения по его улучшению — это Boost, которая занимается, в том числе, совершенствованием возможностей языка путём добавления в него особенностей метапрограммирования. Последний стандарт вышел в 2017 году и носит наименование С++17. Следующий стандарт не заставит себя долго ждать и появится, как ожидают, в 2020 году.
Никто не обладает правами на язык C++, он является свободным. В марте 2016 года в России была создана рабочая группа РГ21 С++. Группа была организована для сбора предложений к стандарту C++, отправки их в комитет и защиты на общих собраниях Международной организации по стандартизации.
С++ – это мультипарадигмальный язык (от слова парадигма – стиль написания компьютерных программ), включающий широкий спектр различных стилей и технологий программирования. Часто его причисляют к объектно-ориентированным языкам, но, строго говоря, это не так. В процессе работы разработчик получает абсолютную свободу в выборе инструментов для того, чтобы задача, решаемая с помощью того или иного подхода, была решена максимально эффективно. Иными словами, С++ не понуждает программиста придерживаться только одного стиля разработки программы (например, объектно-ориентированного).
Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C. Со временем, практическая совместимость между языками C и C++ постепенно будет утрачиваться, так как языки разрабатывают разные группы по стандартизации, не взаимодействующие друг с другом.
C++ повлиял на многие языки программирования, в их числе: Java, C#, D.
C++ имеет богатую стандартную библиотеку, которая включает в себя распространённые контейнеры и алгоритмы, ввод-вывод, регулярные выражения, поддержку многопоточности и другие возможности. (Подробнее)
За время своего существования за языком С++ закрепились устойчивые мифы, которые легко опровергаются (см. здесь: Часть1 и Часть2)
Алфавит языка (п. 3.1.1)
Алфавит языка C++ составляют символы включенные в 7-битную кодировку ISO 646/ECMA-6:
space, ! , » , % , & , ( , ) , * , + , — , . , / , 0..9 , : , ; , , = , > , ? , A..Z , _ , a..z .
Тем не менее, часть символов, используемых в алфавите C++, не входит в кодовую базу этой кодировки: < , >, [ , ] , # , , ^ , | ,
Лексема
Символы алфавита образуют лексемы. Лексема (token) – это минимальная единица языка, имеющая самостоятельный смысл. Лексемы – формируют базовый словарь языка, понятный компилятору. Всего существует пять видов лексем:
- Ключевые слова (keywords)
- Идентификаторы (identifiers)
- Литералы (literals)
- Операции (operators)
- Знаки пунктуации (разделители, punctuators)
Ключевые слова
Ключевые слова (уч. – служебные слова) – это лексемы специального назначения. Они зарезервированы, использовать их в качестве идентификаторов (имен объектов программы) запрещено. Список ключевых слов см. в методичке (Таблица 3).
Идентификаторы
Идентификатор – это имя программного объекта: переменной, константы, массива, функции, класса и т. п. В идентификаторах могут использоваться латинские буквы, цифры и знак нижнего подчеркивания ( _ ). В C++ различаются строчные и прописные буквы (т. е. имена регистро-зависимы), так: Name, name и NAME – это разные идентификаторы. Правила использования идентификаторов:
- можно использовать латинские символы: A..Z, a..z;
- можно использовать арабские цифры: 0..9 и символ нижнего подчеркивания, но не в начале;
- пробелы в имени не допускаются;
- не рекомендуется начинать с нижнего подчеркивания или с двух нижних подчеркиваний и заглавной буквы, например: _S (такие идентификаторы имеют специальное назначение);
- двойное подчеркивание используется только для служебных целей to__boo
- не допускается использования ключевых слов;
- необходимо воздерживаться от использования ключевых слов, как части имени, например: for_and_if (за исключением наименования типов)
При составлении имен желательно придерживаться какого-либо стиля, например, стиля CamelCase : имена пишутся слитно, каждое слово, описывающее назначение идентификатора, пишется с заглавной буквы. Этот стиль используется в двух вариантах: UpperCamelCase и lowerCamelCase . Первый используется для именования классов, второй для прочего: переменных, методов и т.п.
Литералы
Литералы, иначе константы – это неизменяемые величины. Примеры различных констант:
Целые
0 , -1 , 10000
По умолчанию целочисленные лексемы имеют тип int .
Представление целых литералов в различных системах счисления:
Двоичной: 0b1010 , 0B111100111
Восьмеричной: 01 , 020 , 07155
Шестнадцатеричной: 0xA , 0x1B8 , 0X00FF
Действительные
С фиксированной точкой: 5.7 , .001 , -35. , 0.0
С плавающей точкой (экспоненциальный): -0.2E6 , .11e-3 , 5E10 , 2.e-10
По умолчанию они имеют тип double .
Символьные
Один или два символа заключенные в апострофы: ‘S’ , ‘щ’ , ‘t’ , ‘