С язык программирования доклад кратко

Обновлено: 04.07.2024

Вот как повествует историю создания C++ сам разработчик языка:

Общая характеристика языка

Алфавит языка

  • Ключевые слова (keywords)
  • Идентификаторы (identifiers)
  • Литералы (literals)
  • Операции (operators)
  • Знаки пунктуации (разделители, punctuators)

Комментарии

Комментарии служат для описания и документирования исходного кода. В C++ применяются два вида комментариев: многострочный и однострочный. Например:

В комментариях можно использовать любые, доступные в среде, символы – компилятор игнорирует содержимое закомментированного блока или строки.
Далеко не все программисты позитивно относятся к комментариям (“лучший комментарий – это его отсутствие”). Они считают, что хорошо написанный код сам говорит о том, для чего составлена данная программа и как она работает. С этим не поспоришь. Но когда текст программы должен быть задокументирован (например, по требованию заказчика), то к комментированию кода нужно отнестись достаточно серьезно.

Структура программы на языке C++

Самая простая программа на C++ может содержать следующий код:

В С++ main() называется главной функцией программы. В ней осуществляется связь всех компонентов программы в единое целое: выполняются вызовы функций, обращения к объектам библиотечных и пользовательских классов, производится инициализация, ввод и вывод данных, взаимодействие с операционной системой.
Спецификатор типа данных int (целое число) перед именем главной функции ( main ) означает, что эта функция возвращает числовые коды ошибок (или 0, если таковые отсутствуют). Согласно стандарту языка C++, требуется обязательно указывать тип int перед main .
Если откомпилировать и запустить эту программу, то появится консольное окно содержащее только служебную информацию. Поскольку в теле главной функции не реализован какой-либо алгоритм, то и программа не выводит никаких полезных данных.
Консольное окно (или окно консоли) операционной системы используется для организации стандартного ввода/вывода. В нем отображаются вводимые с клавиатуры команды и печатаются (выводятся в виде символов) результаты работы программ. Программы, которые используют в своей работе консольное окно (текстовую консоль) для ввода и вывода данных, называются консольными. Если работа в ОС Linux осуществляется в графическом режиме (KDE), то, в качестве консоли, применяется программа “эмулятора терминала”. В KDE – это программа Konsole. Некоторые IDE (например, Eclipse) имеют встроенную консоль.

Первая программа

Традиционно, первой программой на изучаемом языке является программа вывода на экран строки приветствия “Здравствуй, мир!”. Чтобы в консольном окне появился текст приветствия, программу необходимо дополнить следующими инструкциями и директивами:


Для вывода символьной строки необходимо использовать объект потока cout и операцию вставки “ ” (два символа “меньше”, следующих друг за другом, без пробела). Символьная строка должна быть заключена в двойные кавычки. Завершает вывод данных манипулятор endl (end line – конец строки). Конец программы обозначен инструкцией return (возврат значения). Эта инструкция является необязательной (поскольку программа, в случае её отсутствия, будет возвращать значения операционной системе не явно). Но мы возьмем за хороший навык всегда использовать эту инструкцию в конце программы. Возвращаемое значение – 0 (признак успешного завершения). Обратите внимание, что любая инструкция (предложение языка) в C++ должна заканчиваться точкой с запятой.
Объявление

говорит о том, что мы будем использовать пространство имен стандартной библиотеки ( STD ). Это позволит сделать код более лаконичным. В противном случае, строка 5 выглядела бы следующим образом:

Для составления консольной программы можно использовать обычный plain text редактор, например, nano. Редактор nano - это консольный редактор в Fedora Linux, который умеет "подсвечивать" синтаксис программы написанной на C++. Код программы, набранный в редакторе, необходимо сохранить в файле с расширением .cpp , например, pro1.cpp . Для компиляции программы нужно ввести в командной строке команду запуска компилятора GCC так, как показано ниже. Если процесс компиляции завершился успешно, то запустить программу на выполнение можно простым вводом имени исполняемого файла в строке приглашения ввода команд:

Результат работы программы будет выведен строкой ниже.

Интегрированные среды разработки (IDE)

Большие проекты писать и сопровождать в таких редакторах довольно сложно, так как они не имеют никаких инструментальных средств облегчающих труд разработчика. Для этих целей предназначены интегрированные среды разработки программ - IDE (англ. - Integrated Development Environment). IDE включают в себя редакторы кода, средства работы с компилятором и отладчиком, интеграцию с системами управления версиями и др. возможности. IDE существенно облегчают и ускоряют верстку программного кода, так как встроенные редакторы обладают возможностью подсветки синтаксиса, автодополнения, сворачивания блоков кода, навигации, автоформатирования, генерации кода и рефакторинга.

Под рефа́кторингом (англ. - refactoring) понимают перепроектирование или переработку кода, равносильное преобразование алгоритма, процесс изменения внутренней структуры программы, который позволяет облегчить понимание её работы.

Ниже, в порядке увеличения функциональных возможностей, перечислены свободно распространяемые среды разработки на C++. Этим списком, конечно, не исчерпывается все разнообразие существующих IDE, как свободных, так и коммерческих, но данное ПО (кроме QT Creator) является рекомендованным на Всероссийской предметной олимпиаде школьников по информатике. Обратите внимание, что из легковесности среды вовсе не вытекает удобство верстки программного кода. Легковесные среды предназначены для разработчиков, которые хорошо понимают особенности языка без навязчивых подсказок IDE и предупреждений дотошных анализаторов. С другой стороны, составлять небольшие программы (в несколько строк кода) гораздо удобнее и быстрее как раз в такой легковесной среде, как Geany.
Пользователи Windows должны обратить внимание на то, что данные среды поставляются без компилятора! Только для Qt Creator и Code::Blocks можно установить компилятор совместо со средой разработки. Но, как правило, это будет не самая свежая версия GCC. Последнии версии копилятора необходимо устанавливать отдельно. Для пользователей GNU/Linux этот процесс является менее трудоемким, т. к. все необходимое ПО уже находится в пакетной базе дистрибутива, включая последние версии компиляторов. Как установить компилятор GCC в ОС Windows см. здесь.

Geany


Geany - это мощный, стабильный и легкий текстовый редактор и IDE для программистов, который предоставляет большой набор полезных функций. Он написан на C/C++ c использованием графической библиотеки GTK+. Это кроссплатформенное ПО, которое работает на Linux, Windows и macOS. Geany переведен на более чем 40 языков и имеет встроенную поддержку более чем 50 языков программирования. Geany не включает в свой состав компилятор. Для создания исполняемого кода используется GNU Compiler Collection или любой другой компилятор.

Code::Blocks


Code::Blocks написана на С++ и использует библиотеку wxWidgets. Имея открытую архитектуру, может масштабироваться за счёт подключаемых модулей. Поддерживает языки программирования С, С++, D и Fortran. Code::Blocks - это кроссплатформенное ПО, которое разрабатывается для Windows, Linux и Mac OS X. Поддерживает большой набор компиляторов. Можно установить версию сборки со встроенным компилятором MinGW.

Qt Creator


Qt Creator — кроссплатформенная свободная IDE для разработки на С, С++ и QML. Разработана Trolltech для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML.

Eclipse CDT


Eclipse — свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Eclipse IDE for C/C++ Developers - это одна из большого количества IDE, которые разрабатываются на платформе Eclipse. Интерфейс написан на Java.

Синтаксис и семантика


История развития языка


Сравнение с другими языками

  • инкапсуляция,
  • наследование,
  • полиморфизм,
  • перегрузка операторов,
  • статическая типизация.

При этом он всё ещё активно развивается, и с каждой новой версией появляется всё больше интересного — например лямбды, динамическое связывание, асинхронные методы и т.д.


  • Приоритетная ориентированность на платформу Windows;
  • Язык бесплатен только для небольших фирм, индивидуальных программистов, стартапов и учащихся . Крупной компании покупка лицензионной версии этого языка обойдётся в круглую сумму.


Востребованность на рынке

  • веб-приложения,
  • игры,
  • мобильные приложения для Android или iOS,
  • программы под Windows.

Что дальше?



История развития языка


Сравнение с другими языками

  • инкапсуляция,
  • наследование,
  • полиморфизм,
  • перегрузка операторов,
  • статическая типизация.

При этом он всё ещё активно развивается, и с каждой новой версией появляется всё больше интересного — например лямбды, динамическое связывание, асинхронные методы и т.д.


  • Приоритетная ориентированность на платформу Windows;
  • Язык бесплатен только для небольших фирм, индивидуальных программистов, стартапов и учащихся . Крупной компании покупка лицензионной версии этого языка обойдётся в круглую сумму.


Востребованность на рынке

  • веб-приложения,
  • игры,
  • мобильные приложения для Android или iOS,
  • программы под Windows.

Что дальше?

Языки программирования – неотъемлемая часть нашей жизни, это возможность взаимодействия человека с машиной, возможность общения друг с другом на понятном языке. Всё, что мы делаем на компьютере, так или иначе связано с ними. Просматривая информацию в браузере можно даже посмотреть программный код страницы. И что же мы увидим? Бесчисленное количество непонятных слов. Но в этом не так сложно разобраться. Эта статья поможет вам узнать много нового про языки программирования и преимущества каждого из них.

Для начала немного истории. Первый язык программирования — Plankalkül — появился в 1940-х годах. Он был разработан немецким инженером К. Цузе. Со временем вычислительная техника развивалась, и было создано огромное количество языков программирования, у каждого из которых есть своя область применения и преимущества. Попробуем в них разобраться.


Все языки программирования можно разделить на 4 типа:



Структурные языки программирования

В основе этих языков лежит представление программы в виде иерархической структуры блоков. Любая программа состоит из трёх базовых управляющих структур: последовательность, ветвление, цикл. Рассмотрим основные структурные языки программирования: Basic, Pascal.

Basic

Этот язык программирования был придуман в 1963 году преподавателями Дартмутского Колледжа Джоном Кемени и Томасом Куртцом. Основной задачей этого языка была возможность без опыта программирования создавать программы для своих задач. Сейчас же он превратился в обычный язык программирования с широким набором возможностей.

Преимущества языка Basic:

Pascal

Pascal – один из самых известных языков программирования. Он был создан Никлаусом Виртом в 1968—1969 годах и используется для обучения программированию в старших классах школы и в вузах. Это один из первых языков, для которых характерна строгая типизация, потому что, по мнению Вирта, язык должен способствовать дисциплинированному программированию. Поэтому Pascal так активно используют в обучении. К 1980-м годам Паскаль стал основой для многочисленных учебных программ.

Преимущества языка Pascal:

  1. Лёгкий синтаксис.
  2. Невысокие аппаратные и системные требования.
  3. Универсальность.

Процедурные языки программирования

При процедурном программировании программа сводится к последовательному выполнению операторов для преобразования исходных данных в результаты. Это даёт возможность определять каждый шаг по ходу решения задачи. Самые популярные процедурные языки программирования – C и PureBasic.

C

Разработанный в 1969-1973 годах, этот язык программирования оказал существенное влияние на развитие индустрии программного обеспечения. Он доступен на самых различных платформах и позволяет программистам довольно точно представлять, как выполняются их программы. C применяется при разработке операционных систем и приложений реального времени, которые требуют отзывчивости кода.

Преимущества языка C:

  1. Небольшое число ключевых слов.
  2. Простая языковая база.
  3. Наличие указателей на функции.

PureBasic

Этот язык программирования создан в 1998 году на основе синтаксиса Basic. Он предназначен для создания программ на Linux, Windows, Mac OS. Благодаря лёгкому синтаксису PureBasic подойдёт новичкам, а его большие возможности позволяют работать на нём и продвинутым программистам. Особенностью этого языка является то, что у него есть 2 версии: бесплатная PureBasic Demo и платная PureBasic Full. PureBasic Demo имеет некоторые ограничения. Одно из них: нельзя скомпилировать код в котором больше 800 строк кода.

Преимущества языка PureBasic:

  1. Маленький размер программ.
  2. Код может быть скомпилирован на разных платформах.
  3. Простой синтаксис, но при этом высокая функциональность.

Объектно-ориентированные языки программирования

Основные понятия ООП:

  1. Абстракция данных – выделение значимой информации и исключение незначимой.
  2. Инкапсуляция – свойство языка, позволяющее связать данные с методами.
  3. Наследование – свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
  4. Класс – тип данных, который состоит из набора переменных элементарных типов и функций для работы с ними.
  5. Объект – сущность в цифровом пространстве, имеющая определённые свойства и операции над ними.

На данный момент существует большое количество объектно-ориентированных языков программирования, т.к. они пользуются наибольшей популярностью у программистов. Рассмотрим некоторые из них.

C++

Преимущества языка С++:

  1. Быстрота исполнения кода.
  2. Универсальность. Можно разрабатывать программы для различных операционных систем.
  3. Доступность. Существует огромное количество учебной литературы.

Java

Этот язык был разработан в 1995 году Джеймсом Гослингом. Сейчас Java используется для создания клиентских приложений и серверного ПО. Важной особенностью технологии этого языка является система безопасности, которая контролирует исполнение программы и прерывает операции, прерывающие установленные полномочия (например, несанкционированная попытка доступа к данным). Это, а также высокая скорость выполнения задач делают Java одним из популярнейших языков программирования.

Преимущества языка Java:

  1. Безопасность.
  2. Простота изучения.
  3. Отсутствие зависимости от платформы.

JavaScript

Многие думают, что JavaScript тесно связан с Java, но это не так. Его синтаксис гораздо больше похож на синтаксис языка С. Первоначально он вообще назывался Mocha, затем – LiveScript и только потом получил название JavaScript. Одна из версий состоит в том, что в то время (1995 год) Java было модным словом. JavaScript обычно используется в браузерах. Он придаёт веб-страницам интерактивность. Также JavaScript – самый популярный язык программирования, предназначенный для разработки веб-приложений.

Преимущества языка JavaScript:

  1. Понятен даже тем пользователям, которые не являются программистами.
  2. Возможность запустить программу в браузере.
  3. Программы подключаются к коду веб-страницы и сразу выполняются при загрузке.
  1. Понятность для новичков.
  2. Поддержка большинства продуктов Microsoft.
  3. Скорость работы.

Python

Этот язык, разработанный голландцем Гвидо ван Россумом в 1991 году, ориентирован на повышение читаемости кода. Вот несколько цитат из философии Python:

“Красивое лучше, чем уродливое.”

“Явное лучше, чем неявное.”

“Простое лучше, чем сложное.”

Действительно, Python обладает чётким синтаксисом, и благодаря этому код написанных на нём программ легко читаем. Также он активно развивается, и примерно раз в два с половиной года выходят новые версии языка. Python – универсальный язык программирования. Его можно использовать в разных сферах: от веб-разработки до работы с машинным обучением.

Преимущества языка Python:

  1. Универсальность.
  2. Легко читаемый синтаксис.
  3. Реализован почти на всех платформах и операционных системах.

PHP

PHP был разработан в 1995 году датским программистом Расмусом Ледорфом. Сейчас этот язык активно применяется при разработке веб-приложений. Этому способствует большое количество дополнительных модулей и встроенных средств для веб-программирования. Синтаксис PHP похож на синтаксис языка C. PHP используют крупные сайты, например, Facebook и Wikipedia.

Преимущества языка PHP:

  1. Простота кода.
  2. Эффективные средства безопасности.
  3. Высокая скорость работы.

Функциональные языки программирования

В функциональном программировании процесс вычисления определяется как вычисление значений функций в их математическом понимании. При этом не предполагается хранение состояния программы: достаточно вычисления результатов функций от исходных данных. Таким образом, в функциональном программировании нет переменных, и если мы вызываем функции с одинаковыми аргументами, то мы получим один и тот же результат: выходные данные зависят только от входных. Рассмотрим несколько функциональных языков программирования.

Scala

Преимущества языка Scala:

  1. Взаимодействие с кодом, написанным на Java.
  2. Приятный синтаксис.
  3. Широкая область применения.

Erlang

Преимущества языка Erlang:

  1. Простота изучения.
  2. Возможность обновления кода во время выполнения программы.
  3. Отказоустойчивость программа.

Вот мы и закончили знакомство с языками программирования. Конечно, существует много языков помимо тех, которые представлены в статье, но эти являются основными. Каждый из них подходит под определённые задачи, и исходя из этого надо решать, какие языки программирования изучать.


Язык: C++

Год появления: 1985

Популярность (индекс TIOBE, февраль 2021): 4-е место

Кратчайшая история создания C++

Тогда у Страуструпа было два типа языков: низкоуровневые и языки на основе Фортрана или Алгола, которые были очень медленными.

Низкоуровневые языки дают полный контроль над ресурсами компьютера: процессором, памятью, периферийными устройствами. Но в таких языках мало готовых инструментов, а значит, любые сложные концепции и функции придется кодить самостоятельно. В языках высокого уровня уже есть все необходимые абстракции.

Страуструп объединил возможности объектно-ориентированного С и языка Simula, основанного на Алголе. Главное привнесенное в C новшество — классы, основной элемент в объектно-ориентированном программировании, содержащий в себе данные и код, который ими управляет.


А мне нужен С++?

Да, если вы хотите разрабатывать сложные продукты и сервисы. Опытные С++-программисты — это разработчики ИИ, беспилотных автомобилей, нейронных сетей, банковских, поисковых и ГИС-систем, операционных систем, микроконтроллеров, браузеров, серверов и видеоигр.

Основные области использования C++

  • разработка игр и игровых движков (Unreal Engine, Unity);
  • GPU-вычисления (cryptocurrency, deep learning);
  • разработка высоконагруженных и высокопроизводительных приложений.

С++ — производительный язык, он помогает дорожным картам в GPS не тупить и строить оптимальные маршруты, любимым играм — не лагать и выдавать максимальное качество с выкрученными до предела настройками графики, банковским сервисам — быть круглосуточными, а переводам — моментальными.

Производительность — важная характеристика любой компьютерной игры. Counter-Strike, StarCraft: Brood War, Diablo I, World of Warcraft — все они появились давно и были написаны на C++, как и операционные системы консолей Xbox и PlayStation, ядра популярных игровых движков Unreal Engine или Unity, на базе которых сделано огромное количество 3D-игр, симуляторов, шутеров и стратегий.

Все потому, что на С++ можно использовать объектно-ориентированное программирование, а когда понадобится — обратиться к низкоуровневым возможностям языка, позволяющим хорошо оптимизировать игру под конкретные платформы и очень эффективно производить расчеты для графики. По этой же причине С++ применяется в графических редакторах (Adobe Photoshop).

Благодаря распараллеливанию (одновременному выполнению большого количества несложных математических операций) язык подходит для биткоинов и нейросетей. Первые можно майнить на С++, вторые — обучать: большинство библиотек для глубокого обучения (TensorFlow, Caffe, Shogun, Pytorch C++ API и т.д.) используют С++-код CUDA и OpenCL.

С++ незаменим для высоконагруженных приложений, его используют для разработки поисковых движков, роботов торговых бирж, систем управления базами данных и маршрутизации сетевого трафика.

С помощью С++ Mozilla Corporation разработала opensource-браузер Firefox, была создана Amadeus — система электронного бронирования авиабилетов, гостиниц, круизных туров и проката автомобилей (через нее проходит 5000 транзакций в секунду, более миллиарда транзакций ежедневно), благодаря С++ работают Яндекс.Поиск и поисковый движок Google.

С++ нужен не только программистам, но и:

А еще C++ — это круто, потому что с его помощью:

  • пишут критическое ПО для истребителей F-16 и F-35;
  • разрабатывают пакеты программ и библиотек ROOT для обработки экспериментальных данных физики высоких энергий;
  • по поверхности Марса самостоятельно ездят роверы NASA и летает телескоп Хаббл;
  • делает практически все Microsoft (Windows OS, пакет Office, Internet Explorer, Visual Studio);
  • творят искусство (генеративное) художники: пишут алгоритмы для генерации предметов живописи и скульптур.

Плюсы и минусы языка

Плюсы

  • Высокая производительность, потому что он не накладывает никакой избыточной нагрузки на программу, не использующую какие-либо возможности.
  • Поддержка множества стилей программирования (процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщенное программирование). Поэтому разработчик может сам выбрать, в каком стиле ему писать программу.
  • Большое сообщество.

Минус

Высокий порог входа. Решения об изменениях в С++ принимают на заседаниях комитета, участие в которых формально может принять любой разработчик. Но отправляться на такие собрания в другую страну за свой счет трудно, поэтому большинство участников — представители крупных IT-корпораций, таких как Google, Яндекс или Facebook. А вот представителей интересов студентов или стартапов немного. Поэтому эксперты могут принять концепции, которые им кажутся очевидными, а для остальной аудитории они будут сложными.

Научитесь писать надежный код, который легко поддерживать. Вы начнете с основ программирования, изучите основные алгоритмы и структуры данных. Сразу после курса сможете занять позицию junior C++ developer.

C++ сложно выучить?

Программируя на С++, нужно держать в голове сразу много нюансов: отслеживать типы данных, контролировать выделение и освобождение памяти. Сейчас появляется все больше средств, которые перекладывают эти обязанности на сам язык. Уже на этапе написания кода современные IDE (среды разработки) помогают следить за соблюдением стандартов, отлавливают большое количество ошибок, не всегда очевидных человеку без глубокого знания языка, автоматизируют процесс написания большого объема кода с помощью типовых конструкций.

С++ очень полезен в качестве фундамента для обучения. Начиная свой путь с изучения С, а затем С++, вы получаете качественные знания основ программирования, ООП, структур данных и алгоритмов — всего того, что должен знать любой программист независимо от языка, на котором он специализируется.

Полезные ссылки

Книги:

Другое:

Бонус: С++ как оружие

Чем больше возможностей у системы, тем больше шансов, что они будут неправильно реализованы. Сам Бьёрн Страуструп говорил, что на С++ писать безопасный код легче, чем на его предшественнике С, но если все же допустить оплошность — выстрелом оторвет ногу целиком. Если сравнить С++ с оружием, то это будет гибрид ружья с ножом: из него можно стрелять, но и самому пораниться легко.

Читайте также: