4.1 Текстовый редактор
Текстовый редактор позволяет вводить и редактировать текст программы,
запоминать его в файл и читать этот текст из файла. Обычно файлы, хранящие тексты программ на Си/Си++, имеют расширение *.c, *.cpp. Например, myprog.c. Для изучения текстового
редактора необходимо взять некоторую среду программирования, например, Borland
C.
4.2 Компилятор
Компилятор Си обычно состоит из двух походов. На первом - выполняется
программа препроцессор, который преобразует исходный текст программы в
соответствии с директивами, записанными в тексте программы (более подробно см.
описание препроцессора). На втором - производится генерация объектного кода,
который записывается в файл с расширением *.OBJ. Структура программы в объектном
коде приблизительно такая:
- таблица внешних символов (внешних переменных и функций, имена которых
определены в этом исходном файле);
- таблица внешних ссылок (внешние переменные и имена функций, к которым есть
обращение в данном модуле, но нет их определений);
- машинный код программы, с учетом того, что некоторые имена еще не определены
(см. выше пункт 2).
Компилятор может выдавать сообщения двух типов: ошибки и предупреждения.
Ошибки означают, что программа не может быть транслирована в объектный код.
Например, явно не объявлена какая либо переменная, или неверно записан какой
либо оператор Си. Предупреждение - это сообщение, на которое программисту следует
обратить внимание, но компилятор генерирует объектный код. Примерами таких
сообщений являются сообщения о том, что в программе объявлена переменная, но
нигде эта переменная не используется. Такая ситуация может быть получена при
редактировании текста программы, когда часть текста, где используется
переменная, удалена или помечена как комментарий, а объявление переменной было
оставлено.Что нужно знать о компиляторе: это установка различных опций,
позволяющих создавать различные режимы генерации и оптимизации объектного кода.
4.3 Редактор связей
Редактор связей (компоновщик, линкер) программа, обеспечивающая
сборку объектных модулей, вставки функций из системных библиотек и создание
исполняемой программы. Эта программа просматривает таблицы внешних символов и
таблицы внешних ссылок, настраивает адреса внешних переменных и функций для
каждого модуля, вставляет библиотечные функции, создает заголовок программы и
создает программу, исполняемую на данном компьютере. В случае, если какая-либо
внешняя ссылка будет не определенна, редактор связей сгенерирует соответствующую ошибку. Ошибки редактора связей обычно связаны с неверным написанием имени
функции в операторе вызова.
4.6 Вспомогательные средства
К ним относятся процедура Make, которая обеспечивает следующий сервис:
производит проверку даты и времени создания или последней редакции файла с
исходным текстом и времени и даты соответствующего объектного файла, и, если
объектный файл был ранее создан, то данный файл с исходным текстом компилируется, в противном случае не компилируется. Эта процедура осуществляет проверку для
всех модулей из текущего проекта. После проверки компиляции производится
проверка исполняемого файла программы, если дата и время создания его ранее, чем
одно их объектных файлов, то вызывается редактор связей и создается исполняемый
файл заново. Процедура Build производит автоматическую компиляцию всех модулей и создание
исполняемого файла программы.