Знакомство с языком С++

Язык программирования С был разработан в период с 1969 по 1973 годы американскими программистами Кеном Томпсоном и Денисом Ритчи. Язык С разрабатывался как язык системного программирования и предназначался для кодирования операционной системы Unix, которая была бы переносима на различные аппаратные платформы.

Бьярне Страуструп начал работать над разработкой С++ в 1979 году. Идея создания нового языка берёт начало от опыта программирования Страуструпа для диссертации. Он обнаружил, что язык моделирования Симула имеет такие возможности, которые были бы очень полезны для разработки большого программного обеспечения, но работает слишком медленно. В то же время язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки большого программного обеспечения.

Страуструп решил дополнить язык С возможностями, имеющимися в языке Симула. Язык Си, будучи базовым языком системы UNIX, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате, практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки так и с точки зрения времени вычислений.

В 1983 г. в С++ были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, константы, новый стиль комментариев (//). В 1985 г. вышло первое издание «Языка программирования Си++», обеспечивающее первое описание этого языка, что было чрезвычайно важно из-за отсутствия официального стандарта. В 1989 г. состоялся выход Си++ версии 2.0. Его новые возможности включали множественное наследование, абстрактные классы, статические функции-члены. Последние обновления включали шаблоны исключения пространства имён, булевский тип.

Новые возможности языка С++ по сравнению с языком С

  • поддержка объектно-ориентированного программирования через классы;

  • поддержка обобщённого программирования через шаблоны;

  • дополнения к стандартной библиотеке;

  • дополнительные типы данных;

  • исключения;

  • встраиваемые функции;

  • перегрузка операторов;

Достоинства языка C++

  • Масштабируемость. На языке C++ разрабатывают программы для самых различных платформ и систем.

  • Возможность работы на низком уровне с памятью, адресами, портами.

Недостатки языка C++

  • Плохая поддержка модульности. Подключение интерфейса внешнего модуля через препроцессорную вставку заголовочного файла (#include) серьезно замедляет компиляцию, при подключении большого количества модулей.

  • Язык C++ является сложным для изучения.

  • Препроцессор С++ (унаследованный от С) очень примитивен. Это приводит к тому, что с его помощью нельзя осуществлять некоторые задачи метапрограммирования

  • Операция присваивания обозначается как =, а операция сравнения как ==

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

Дизайн С++

В книге «Дизайн и развитие C++»  Бьярне Страуструп описывает некоторые правила, которые он использовал при проектировании С++. Вот некоторые из этих правил С++:

  • разработан как универсальный язык со статическими типами данных, эффективностью и переносимостью языка С.

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

  • разработан так, чтобы давать программисту свободу выбора, даже если это даёт ему возможность выбирать неправильно.

  • разработан так, чтобы максимально сохранить совместимость с С, тем самым делая возможным лёгкий переход от программирования с С++ на С

Будущее развитие

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

Четверг, 09.05.2024, 02:34
Приветствую Вас Гость