Объектный модуль – программа пользователя, преобразованная в машинные команды без текстов подпрограмм (библиотечных элементов) и оформленная в виде файла.
![]() |
Объектный модуль создается из исходного специализированной программой интегрированного пакета – транслятором (компилятором). Схема получения объектного модуля:
Получение объектного модуля реализуется соответствующей командой пользователя интегрированной среде Borland C++. В качестве команд трансляции используются:
¨ P roject\ C ompile (Проект\Компилировать)– активизация пункта P roject главного меню, а затем подпункта C ompile;
¨ горячие клавиши (указаны справа в меню) Alt + F9;
¨ кнопка на панели инструментов.
Команда предписывает пакету последовательность действий:
¨ активизировать требуемый компонент IDE (транслятор);
¨ проанализировать спецификацию файла и содержимое активного окна;
¨ сформировать окно сообщений «Translating имя файла » о прохождении трансляции;
¨ выполнить построчное преобразование директив препроцессора и операторов программы с алгоритмического языка в соответствующие машинные команды;
¨ выдать в окно «Translating имя файла Complete » сообщение об окончании трансляции с указанием количества ошибок, если они найдены;
¨ отобразить окно «Message » с указанием спецификации транслируемого файла и расшифровкой найденных ошибок;
¨ создать файл предварительной компиляции, из содержимого директив (если они используются);
¨ сформировать результаты преобразования тела программы в объектный модуль.
Активизация транслятора производится автоматически после ввода команды компиляции. Копия транслятора загружается в ОП и, активизируясь, создает там же собственный буфер трансляции, а на экране монитора – окно «Translating имя файла ».
Анализ заголовка активного окна определяет спецификацию файла, подлежащего обработке. В буфер транслятора загружается его копия и начинается преобразование:
Основные компоненты программы определяют последовательность действий транслятора. Директивы препроцессора преобразуются в отдельный файл bcwdef.csm, создаваемый первым. Тело программы – в объектный модуль. Спецификация объектного модуля формируется автоматически из спецификации файла исходного модуля с заменой расширения «срр» на «obj».
Результат – появление на диске двух файлов: предварительной компиляции bcwdef.csm и созданного объектного модуля имя.obj.
Внимание! Продолжительность трансляции и размер файла предварительной компиляции зависят от количества и сложности подключаемых директив. Для большинства тривиальных задач пользователя объемы содержимого директив и собственные тела программы различаются на порядки. Поэтому начинающему пользователю рекомендуется использовать минимально необходимое их количество.
Например, окно сообщений:
подтверждает выполнение трансляции исходного модуля.
Окно определяет четыре группы компонентов, обеспечивающих контроль выполнения трансляции:
Ø Status (состояние): Compiling… (компиляция);
Ø Files – файлы, участвующие в трансляции:
ü Main file (главная функция);
ü Compiling (компилируемый в данный момент);
ü Information (информация);
Ø Statistics (статистика) Total (всего) Current (сейчас):
ü Lines (строк);
ü Warnings (предупреждений);
ü Errors (ошибок);
Ø элементы управления.
Так окно трансляции файла U:\Иванов\linie.cpp, расположенного в активном окне редактора и содержащего три директивы, определяет значительные объемы трансляции (более 90000 строк).
При этом в папке Иванов начинают создаваться два файла: предварительный bcwdef.csm и объектный – linie.obj.
Окончание процесса компиляции сопровождается изменением заголовка и некоторых компонентов диалогового окна «Translating имя файла »:
Несоответствия синтаксису алгоритмического языка, найденные при компиляции программы подразделяются на ошибки и предупреждения.
Ошибки – нарушения правил записи типовых структур, которые может исправить только пользователь.
Предупреждения – некорректные языковые структуры, однозначно исправляемые транслятором. Чаще всего предупреждения игнорируются пользователем (в дальнейшем это может привести к получению неверного результата).
Анализ двух последних строк окна: Warnings (предупреждения), Errors (ошибки) определяет их наличие (отсутствие). Нулевые значения в столбцах Total (всего) и Current (сейчас) свидетельствуют об отсутствии ошибок и предупреждений.
Фиксация ошибок и предупреждений подтверждается появлением окна сообщений «Message». Окно содержит информацию о компиляции конкретного файла и расшифровку каждой найденной ошибки и предупреждения:
Активизация окна «Message» осуществляется по типовой методике. Простейший вариант – щелчок левой клавишей мыши на заголовке окна.
Информация об ошибках и предупреждениях выводится построчно: восклицательный знак (красного или желтого цвета соответственно), имя файла, расположение в тексте (номер строки и позиции в ней в круглых скобках через запятую), пояснение.
Указание мышью конкретной ошибки (предупреждения) в окне «Message» автоматически подсвечивает (желтым цветом) в окне редактирования соответствующую строку.
Перебор сообщений в окне «Message» осуществляется
¨ командами S earch\ P revious Message... (Поиск\Предыдущее сообщение) и S earch\ N ext Message... (Поиск\Следующее сообщение);
¨ горячими клавишами Alt + F7 и Alt + F8,
¨ указанием мышью;
¨ клавишами и ¯.
Перемещение указателя по строкам в окне «Message», приводит к подсвечиванию строк с ошибками в окне редактирования.
Исправление найденных ошибок выполняется в окне текстового редактора по типовой методике. Исправленный текст необходимо оформить (сохранить) в файл исходного модуля, а затем повторить этап компиляции.