Гайд Перевод Learncpp.com: раздел 0.3 // Введение в С / С++. На русском.

Легенда форума
Статус
Онлайн
Регистрация
10 Дек 2018
Сообщения
4,219
Реакции[?]
2,184
Поинты[?]
84K
Привет!
Это третий по счёту перевод сайта learncpp.com, вот ссылка на предыдущую часть:
Пожалуйста, авторизуйтесь для просмотра ссылки.



До C++ существовал C:

Язык C (Си) был разработан в 1972 году Деннисом Ричи в Bell Telephone laboratories, главным образом как язык системного программирования (язык для написания операционных систем). Основной целью Ричи было создание минималистичного языка, который был бы прост в компиляции, обеспечивал эффективный доступ к памяти, производил эффективный код и был самодостаточным (не зависящим от других программ). Он был разработан, чтобы дать программисту много контроля, в то же время поощряя независимость платформы (аппаратного обеспечения и операционной системы) (то есть, код не нужно было переписывать для каждой платформы).

Cи оказался настолько эффективным и гибким, что в 1973 году Ричи и Кен Томпсон переписали большую часть операционной системы Unix, используя Cи. В отличие от ассемблера, который производит программы, которые могут работать только на определенных процессорах, Си обладает отличной переносимостью, позволяя Unix легко перекомпилироваться на многих различных типах компьютеров и ускоряя его внедрение в общую среду разработки. Cи и Unix были связаны своими судьбами, и популярность этого языка программирования была частично связана с успехом Unix как операционной системы.

В 1978 году Брайан Керниган и Деннис Ричи опубликовали книгу под названием "Язык программирования Си". Эта книга, которая была широко известна как K&R (по фамилиям авторов), предоставила неофициальную спецификацию языка и стала стандартом де-факто. Когда требовалась максимальная переносимость, программисты придерживались рекомендаций K&R, потому что большинство компиляторов в то время были реализованы по стандартам K&R.

В 1983 году американский Национальный институт стандартов (ANSI) сформировал комитет по установлению официального стандарта для C. В 1989 году (комитеты принимают навсегда), они закончили и выпустили стандарт C89, более известный как ANSI C. В 1990 году Международная организация по стандартизации (ISO) приняла ANSI C (с несколькими незначительными изменениями). Эта версия C стала известна как C90. Компиляторы в конечном счете стали совместимыми с ANSI C/C90, и программы, стремящиеся к максимальной переносимости, были закодированы в соответствии с этим стандартом.

В 1999 году комитет ANSI выпустил новую версию C под названием C99. C99 принял многие функции, которые уже вошли в компиляторы в качестве расширений или были реализованы в C++.

С++:

C++ (произносится как си плюс плюс) был разработан Бьярне Страуструпом в Bell Labs как расширение C, начиная с 1979 года. C++ добавляет много новых функций в язык C, и, возможно, лучше всего думать о нем как о надмножестве C, хотя это не совсем верно (поскольку C99 ввел несколько функций, которые не существуют в C++). Притязания C++ на известность проистекают прежде всего из того факта, что это объектно-ориентированный язык. Что касается того, что такое объект и чем он отличается от традиционных методов программирования, то мы рассмотрим это в главе 8 (основы объектно-ориентированного программирования).

С++ был стандартизирован в 1998 году Комитетом ИСО (это означает, что комитет ИСО ратифицировал документ, описывающий язык С++, чтобы обеспечить соблюдение всеми компиляторами одного и того же набора стандартов). Незначительное обновление было выпущено в 2003 году (под названием C++03).

С тех пор было сделано три основных обновления языка C++ (C++11, C++14 и C++17, ратифицированные в 2011, 2014 и 2017 годах соответственно), каждое из которых добавило дополнительную функциональность. C++11 в частности добавил огромное количество новых возможностей,и на данный момент широко считается новой базовой линией. На момент написания статьи C++20 находится в работе, обещая принести еще больше новых возможностей. Будущие обновления языка ожидаются примерно каждые три года.

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

Философия C и C++:

Лежащую в основе дизайна философию С и с++ можно сформулировать так: ”доверяйте программисту", что одновременно и прекрасно и опасно. C++ предназначен для того, чтобы позволить программисту высокую степень свободы делать то, что он хочет. Однако это также означает, что язык часто не будет мешать вам делать вещи, которые не имеют смысла, потому что он будет предполагать, что вы делаете это по какой-то причине, которую он не понимает. Существует довольно много ловушек, в которые могут попасть новые программисты, если их застать врасплох. Это одна из главных причин, почему знание того, что вы не должны делать в C/C++, почти так же важно, как и знание того, что вы должны делать.



Вопрос: в чём хорош C++?

C++ отлично работает в ситуациях, когда требуется высокая производительность и точный контроль над памятью и другими ресурсами. Вот несколько распространенных типов приложений, которые, скорее всего, будут написаны на языке C++:
  • Видеоигры
  • Системы реального времени (например, для транспортировки, производства и т. д…)
  • Высокопроизводительные финансовые приложения (например, высокочастотная торговля)
  • Графические приложения и моделирование
  • Производительность / офисные приложения
  • Встроенное программное обеспечение
  • Обработка аудио и видео данных

Вопрос: нужно ли мне знать C, прежде чем я прочту эти учебники?

Нет! Это совершенно нормально, чтобы начать с C++, и мы научим вас всему, что вам нужно знать (включая подводные камни) на этом пути.
Как только вы узнаете C++, вам будет довольно легко выучить стандартный C, если у вас когда-нибудь возникнет такая необходимость. В наши дни C в основном используется для нишевых вариантов использования: код, который работает на встроенных устройствах, когда вам нужно взаимодействовать с другими языками, которые могут взаимодействовать только с C, и т. д. Для большинства других случаев рекомендуется использовать C++.
 
Последнее редактирование:
Сверху Снизу