В прошлой статье мы разобрали первые два шага, которые необходимо выполнить перед тем, как мы начнем писать программу.
Если вы начали с этой статьи, первую часть можно почитать здесь: ССЫЛКА
Повторим кратко все шаги нашего плана разработки и перейдем к третьему шагу:
1. Определим задачу(и), которую будет решать наша программа.
2. Разработаем решение, то есть продумаем с помощью каких элементов языка программирования можно будет решить нашу задачу.
3. Напишем программу, которая реализует наше решение.
4. Соберем эту программу с помощью компилятора.
5. Скомпонуем объектные файлы.
6. Проверим работу программы.
7. Проведем отладку программы.
ШАГ 3: Пишем программу
Чтобы написать программу, вам понадобится один навык: знание языка программирования. Именно для этого и был создан этот канал и совсем скоро я начну публиковать профильные статьи по C++, а значит до того, как мы вместе начнем погружаться в архитектуру языка, осталось совсем немного времени.
Кроме навыка для написания программы вам будет нужен редактор, в котором вы и будете писать код. Вы можете пользоваться любым текстовым редактором, однако лучше всего использовать специализированные редакторы кода. О них мы поговорим уже в следующей статье.
Файлы с кодом на C++ имеют расширение name.cpp
Преимущества специализированных редакторов кода
Нумерация строк. Она полезна в случаях, когда компилятор выдает ошибку в коде. Ошибка указывается в формате "Код ошибки/сообщение, строка...". Если ваш код написан не в специальном редакторе, то на поиск номера строки в большой программе уйдет очень много времени.
Выше я наглядно показал пример нумерации строк в профессиональном редакторе.
Вторым важным отличием профессиональных редакторов кода является специальная подсветка и раскраска для разных элементов синтаксиса языка.
Третье отличие, это использование специализированными редакторами единого понятного шрифта, в котором например буква О и цифра 0 не будут похожи друг на друга.
ШАГ 4: Собираем программу с помощью компилятора
И так, наша программа успешно написана и теперь ее необходимо запустить. Сначала, наша программа должна пройти стадию компиляции. Для этого программисты используют отдельные программы или встроенные в IDE компиляторы.
Компилятор — программа, которая переводит код, написанный на языке программирования в машинный язык.
IDE — интегрированная среда разработки, иначе комплекс программных средств, который включает в себя: специализированный текстовый редактор, компилятор/интерпретатор, средства автоматизации сборки и отладчик для поиска ошибок.
Какие задачи выполняет компилятор?
1. Проверяет ваш код на соответствие всем правилам языка программирования (С++). Если код в каком-либо месте не соответствует правилам, компилятор укажет на это место, выдаст код ошибки и ее название. И не продолжит работу, пока ошибка не будет исправлена.
2. Когда ваш код полностью проверен и ошибок не найдено, компилятор переведет его в машинный язык и создаст из него объектный файл в формате name.o/name.obj
Пока это все что вам следует знать про IDE компилятор, более подробно можно почитать ЗДЕСЬ.
ШАГ 5. Компонуем объектные файлы
Как только компилятор соберет из вашего документа с кодом объектный файл, в дело включится другая программа, называемая компоновщиком (линкером).
Работа компоновщика (линкера) будет протекать в три этапа:
1. Для начала линкер возьмет все объектные файлы сгенерированные компилятором и соберет из них одну исполняемую программу.
Исполняемая программа — набор инструкций, который заставляет компьютер выполнять определенные в них задачи.
2. Далее, подключит к исполняемой программе все библиотеке, необходимость которых вы указали в коде, в том числе стандартную библиотеку ввода/вывода <iostream> (пример подключения этой библиотеки вы можете видеть в первой строчке кода на картинке из шага 3).
Для чего линкеру подключать какие-то библиотеки? Дело в том, что в основное ядро языка C++ по умолчанию не заложены такие функции как ввод на экран или вывод с экрана и т.д. Поэтому C++ поставляется вместе со стандартными библиотеками, с помощью которых вы можете использовать в своих программах различные дополнительные функции.
Так же для выполнения некоторых задач удобнее использовать сторонние библиотеки для языка C++. Например, вам нужно написать программу, одной из функций которых будет воспроизведение звука. Чтобы это сделать, придется написать код для чтения данных с диска, потом придется написать код для проверки этих данных на работоспособность и еще написать блок, который будет эти данные отправлять в операционную систему или на устройство вывода звука. А можно...
Просто подключить соответствующую стороннюю библиотеку, в которой все уже сделано за вас.
3. Третье, что сделает компоновщик, перед тем как завершить работу — это налаживает все взаимосвязи в вашем коде. Например, вы написали и сохранили свой код в трех файлах .cpp и указали внутри порядок исполнения частей кода. Компоновщик, следуя этому порядку, объединит код в единую программу, которую можно будет использовать. Если правила ссылок и объединения были вами нарушены, то компоновщик сообщит об ошибке.
На этом работа компоновщика закончится.
ШАГ 6-7 Тестируем и отлаживаем программы
После того, как компоновщик завершит свою работу, он сформирует исполняемый файл, который и будет являться вашей программой. Вы сможете его запустить и проверить ее работу. Однако программа может работать некорректно. Именно для этого в IDE есть встроенные функции тестирования и отладки программы. Пока вам хватит знать просто о факте их существования. Подробности о том, как ими пользоваться мы разберем в следующих статьях.