Программирование на C и C++

Онлайн справочник программиста на C и C++

Происхождение языка С++

С++ является расширением языка С. С представляет собой гибкий и мощный язык программирования, использовавшийся для разработки наиболее важных программных продуктов в течение прошедших лет. Однако, как только проект превышает определенные размеры, возможности применения языка С достигают своих границ. В зависимости от проекта, программы размером от 25000 до 100000 строк оказываются трудными для разработки и управления потому, что их трудно охватить целиком. Работая в Bell Laboratories в Murray Hill, штат Нью-Джерси, Бьярн Страуструп (Bjarne Stroustrup) добавил к языку С несколько расширений с целью решить эту проблему. Первоначально язык назывался «С с классами». Это название было заменено на С++ в 1983 году.

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

С момента своего возникновения С++ подвергался серьезным ревизиям трижды, первый раз в 1985 году, второй — в 1989 году. Третий пересмотр языка произошел в связи с работой над стандартом ANSI для С++. Первая версия предложенного стандарта была создана к 25 января 1994 года. Комитет ANSI по языку С++  практически сохранил все черты языка, определенные Страуструпом, и добавил несколько новых. Процесс стандартизации обычно является достаточно медленным, и стандартизация С++ не является исключением.

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

Хотя первоначально С++ был нацелен на работу с очень большими программами, это  не ограничивает его применение. Фактически объектно-ориентированные атрибуты языка С++ могут быть эффективно применены фактически к любой задаче программирования. Этот язык часто используется для таких проектов, как создание редакторов, баз данных, персональных систем  работы с файлами и коммуникационных программ. Благодаря тому, что С++ унаследовал эффективность языка С, с его помощью разрабатывается высокопроизводительное программное обеспечение.