вторник, 1 июня 2010 г.

Язык программирования С++


Язык программирования С++ является продолжением и улучшением языка программирования Си. Основное отличие безплюсового (C) и приплюснутого (C++) си в том, что в последнем языке наибольшее внимание уделено поддержке объектно-ориентированного программирования.

Язык программирования С++ появился в начале восьмидесятых годов двадцатого века там же, где и Си – Bell Labs. Но разработал его уже другой человек – Бьерн Страуструп (Bjarne Stroustrup). Тогда он пытался убрать недостатки, присущие Си и добавлял некоторые улучшения. Смотреть в сторону создания нового языка программирования Страуструп стал тогда, когда работал над диссертацией. Во время этой работы Бьерн обнаружил, что с  помощью языка моделирования Simula можно разрабатывать большие и сложные информационные системы, но работает Симула медленно. Одновременно, язык BCPL (B, прародитель языка Си) работает быстро но, в связи с тем, что он слишком близок к языкам низкого уровня – он не годится к разработке сложных информационных систем.
Работая в Bell Labs над своим проектом (разработка очередей) Бьерн пытался применить к решению поставленной задачи те языки программирования (и моделирования), который были на тот момент. Но все они не смоги ему помочь. Через некоторое время Страуструп вспомнил свою диссертацию – и решил дополнить стандартный (на тот момент для UNIX) язык Си некоторыми дополнительными возможностями. В первую очередь Бьерн добавил к нему возможности работы с классами и объектами. После создания нового (улучшенного) языка программирования, поставленные перед Страуструпом задачи были решены великолепно: благодаря корням из Симулы легко было создавать и работать с классами; из-за низкоуровневости Си созданные программы работали быстро.

Благодаря этому (тому, что в Си были сначала добавлены классы), новый язык программирования так и называли «Си с классами». Примерно в 1983 году Си с классами был переименован в C++. Это название было придумано Риком Масситти (Rick Mascitti). Данное название дали потому, что ++ это оператор Си (инктремент) – увеличение на один. То есть чтобы показать, что C++ это улучшенный Си. Кроме того, не стали называть новый язык как «D» потому, что это все-таки язык Си, но с классами. Вот такая игра слов и терминов породила название для язка.

Постепенно язык C++ стал набирать популярность среди работников Bell Labs. Страуструпу приходилось все чаще и чаще отвечать на множество поступающих вопросов. В результате Бьерн не смог поддерживать этот язык один. Вместе с выделенной командой, в 1985 году, Страуструп выпустил первую коммерческую версию C++. В этом же году он выпустил книгу под названием «Язык программирования С++» (The C++ Programming Language). В 1989 году была выпущена вторая версия языка, куда были включены множество объектных функций (наследование, абстрактные классы и т.д.). В 1990 году вышла новая книга от Страуструпа: «Комментированное справочное руководство по C++» (The Annotated C++ Reference Manual).

Языки Си и C++ имеют следующую особенность (и это логично): программа, написанная на Си может быть скомпилирована с использованием компилятора C++ (то есть – является программой на C++). Но программа, написанная на языке программирования C++ не обязательно скомпилируется компилятором Си, в силу своих объектных возможностей. Так что если вы умеете программировать на Си, то можете смело говорить, что вы программируете и на C++ (шутка =).

В 1998 году комитет ANSI-ISO стандартизировал C++. В течении нескольких последующих лет в данный комитет поступали письма с описанием ошибок в языке, поэтому в 2003 году была выпущена обновленная (исправленная) версия стандарта. В ближайшее время должна выйти новая версия данного стандарта (ее кодовое название C++0x).

Надо обязательно отметить то, что язык C++ никому не принадлежит – он свободный. Но вот стандарт языка (сам документ) бесплатно не распространяется.



В нашей местности (где я обитаю) язык программирования С++ не пользуется большой популярностью, поэтому я с ним не знаком. Но в остальном мире вышеописанный язык играет большое значение. Так что иметь представление о нем обязательно надо. В ближайшей рубрике «Личность» я расскажу о создателе языка программирования C++ Бьерне Страуструпе.

4 комментария:

  1. > В ближайшее время должна выйти новая версия данного стандарта (ее кодовое название C++0x)
    Так уже вышел

    > стандарт языка (сам документ) бесплатно не распространяется.
    Черновики бесплатны

    > Благодаря этому (тому, что в Си были сначала добавлены классы), новый язык программирования так и называли «Си с классами».
    В основном благодаря тому, что это и был Си. С++ еще небыло. Был только препроцессор, генерирующий программу на чистом Си.

    > улучшением языка программирования Си
    Это спорно

    ОтветитьУдалить
  2. Спасибо за уточнения, учту это и перепишу текст =)

    ОтветитьУдалить
  3. Переписывать как-то не принято :) Формат блога тем и замечателен, что есть место для спора. Это не тригонометрические таблицы, где нет ошибок, все формально и объективно.

    ОтветитьУдалить
  4. Тогда возможно у меня неактуальные данные о:
    > В ближайшее время должна выйти новая версия данного стандарта (ее кодовое название C++0x)
    Скорее всего он действительно уже вышел.

    ОтветитьУдалить