Краткая историческая справка
Язык C++ развился из С, который, в свою очередь, был создан на основе двух предшествующих языков - BCPL и В. Язык BCPL был создан в 1967 году Мартином Ричардом как язык для написания компиляторов и программного обеспечения операционных систем. Кен Томпсон предусмотрел много возможностей в своем языке В - дубликате BCPL - и использовал В для создания более ранних версий операционной системы UNIX в Bell Laboratories в 1970 году на компьютере DEC PDP-7.
Язык С был развит из В Денисом Ритчи и первоначально реализован в 1972 году. Он использует многие важные концепции BCPL и В, а также добавляет типы данных и другие свойства. Первоначально С приобрел широкую известность как язык разработки операционной системы UNIX. Сегодня фактически все новые операционные системы написаны на С или на C++. Он независим от аппаратных средств. При тщательной разработке на С можно написать мобильные программы, переносимые на большинство компьютеров.
В конце 70-х годов С развился в то, что теперь относят к «традиционному С», «классическому С» или «С Кернигана и Ритчи».
Широкое распространение С на различных компьютерах (аппаратных платформах) привело ко многим вариациям языка. Некоторые из них были похожи, но несовместимы друг с другом. Это было серьезной проблемой для разработчиков программ, нуждавшихся в написании совместимых программ. Стало ясно, что необходима стандартная версия С. В 1983 году при Американском Национальном Комитете Стандартов (ANSI) в области вычислительной техники и обработки информации был создан технический комитет основной целью которого стало «обеспечить недвусмысленное и машинно-независимое определение языка». В 1989 году стандарт был утвержден. ANSI скооперировался с Международной Организацией Стандартов (ISO), чтобы стандартизировать С в мировом масштабе. Cовместный стандарт был опубликован в 1990 году и назван ISO/IEC 9899:1990.
C++ - расширение С - был разработан Бьерном Страуступом в начале 80-х годов в Bell Laboratories. C++ обеспечивает ряд свойств, которые «приводят в порядок» язык С, но, что более важно, он обеспечивает возможность объектно-ориентированного программирования. Это явилось революционной идеей в мире программного обеспечения. Объекты - это эффективные повторно используемые компоненты программного обеспечения, моделирующие элементы реального мира. Объектно-ориентированные программы легче понимать, корректировать и модифицировать.
C++ - гибридный язык, он предоставляет возможность программировать и в стиле С, и в объектно-ориентированном стиле, и в обоих стилях сразу. С середины 90-х годов C++ становится доминирующим системно-образующим языком.
Программа на языке C++ представляет собой файл с расширением СРР (*.срр). Процесс создания этого файла называют кодированием он, как правило, выполняется с помощью специального редактора кода (code editor).
По завершении редактирования исходный код программы необходимо перевести на машинный язык. Этот процесс называют компиляцией, он производится компилятором языка (compiler). Результат этой стадии - объектный файл с расширением OBJ (*.obj).
Завершает разработку программы фаза компоновки, в результате которой создается исполняемый файл с расширением ЕХЕ (*.ехе), готовый к работе.
Фаза компиляции сопровождается проверкой синтаксиса программы, все найденные ошибки сообщаются пользователю.
Ошибки Errors означают нарушения синтаксиса языка C++, которые делают невозможной дальнейшую компоновку программы. Все ошибки должны быть вами устранены, для чего можно воспользоваться сообщениями компилятора, в которых указывается номер строки и краткое описание ошибки.
Предупреждения Warnings означают подозрительные конструкции, которые могут функционировать неправильно - не так, как это задумано программистом. Наличие предупреждений не приводит к остановке процессов компиляции и компоновки. Однако, к ним также следует относиться внимательно, так как в большинстве случаев они являются следствием логических ошибок в программе, которые трудно поддаются обнаружению.
Современные системы программирования часто объединяют в себе все компоненты, необходимые для создания исполняемого файла, то есть выполняют одновременно функции редактора кода, компилятора, компоновщика, а также некоторые другие - библиотекаря (librarian), отладчика (debugger), профайлера (profiler) и т. д. Такие системы называют интегрированными средами разработки (IDE, integrated development environment). Программный пакет Borland CPP 5.02 является примером такой IDE, которую мы будем использовать в рамках настоящего курса.
Практическая работа № 1. Создание консольного приложения