Выбрать главу

Методы программирования и проектирования следует изучать на основе определенного языка программирования. Проектирование, программирование и отладка не относятся к навыкам, которыми можно овладеть абстрактно. Вы должны писать программы на каком-то языке и приобретать практический опыт. Это значит, что вы должны изучить основы какого-то языка программирования. Мы говорим “основы”, так как времена, когда все основные промышленные языки программирования можно было изучить за несколько недель, ушли в прошлое. Для обучения мы выбрали подмножество языка С++, которое лучше всего подходит для разработки хороших программ. Кроме того, мы описываем свойства языка С++, которые невозможно не упомянуть, поскольку они либо необходимы для логической полноты, либо широко используются в сообществе программистов.

0.2.3. Переносимость 

  Как правило, программы на языке С++ выполняются на разнообразных компьютерах. Основные приложения на языке С++ выполняются на компьютерах, о которых мы даже представления не имеем! По этой причине мы считаем переносимость программ и возможность их выполнения на компьютерах с разной архитектурой и операционными системами одним из самых важных свойств. Практически каждый пример в этой книге не только соответствует стандарту ISO Standard C++, но и обладает переносимостью. Если это не указано явно, представленные в книге программы могут быть выполнены с помощью любого компилятора языка С++ и были протестированы на разных компьютерах и под управлением разных операционных систем.

Процесс компилирования, редактирования связей и выполнения программ на языке С++ зависит от операционной системы. Было бы слишком неудобно постоянно описывать детали устройства этих систем и компиляторов каждый раз при ссылке на выполнение программы. Наиболее важная информация, необходимая для использования интегрированной среды разработки программ Visual Studio и компилятора Microsoft C++ под управлением операционной системы Windows, приведена в приложении В.

Если вы испытываете трудности при работе с популярными, но слишком сложными интегрированными средами разработки программ, предлагаем использовать командную строку; это удивительно просто. Например, для того чтобы скомпилировать, отредактировать связи и выполнить простую программу, состоящую из двух исходных файлов, my_file1.cpp и my_file2.cpp, с помощью компилятора GNU C++ под управлением операционной системы Unix или Linux, выполните две команды:

g++ –o my_program my_file1.cpp my_file2.cpp

my_program

Да, этого достаточно.

0.3. Программирование и компьютерные науки

Можно ли свести компьютерные науки к программированию? Разумеется, нет! Единственная причина, по которой мы поставили этот вопрос, заключается в том, что люди часто заблуждаются по этому поводу. Мы затрагиваем множество тем, связанных с компьютерными науками, например алгоритмы и структуры данных, но наша цель — научить программировать, т.е. разрабатывать и выполнять программы. Это изложение и шире, и уже, чем общепринятая точка зрения на компьютерные науки.

Шире, так как программирование связано с множеством технических знаний, которые, как правило, не относятся ни к какой научной дисциплине.

Уже, т.е. мы не стремились к систематическому изложению основ компьютерных наук.

Цель этой книги — частично охватить курс компьютерных наук (если вы собираетесь стать специалистом в этой области), изложить введение в методы разработки и эксплуатации программного обеспечения (если вы планируете стать программистом или разработчиком программного обеспечения) и, вообще, заложить основы более общего курса.

Тем не менее, несмотря на то, что изложение опирается на компьютерные науки и их основные принципы, следует подчеркнуть, что мы рассматриваем программирование как совокупность практических навыков, основанных на теории и опыте, а не как науку.