Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_Маш обраб.doc
Скачиваний:
5
Добавлен:
22.11.2018
Размер:
390.66 Кб
Скачать

4.Создание объектного модуля

Объектный модуль – программа пользователя, преобразованная в машинные команды без текстов подпрограмм (библиотечных элементов) и оформленная в виде файла.

Объектный модуль создается из исходного специализированной программой интегрированного пакета – транслятором (компилятором). Схема получения объектного модуля:

Получение объектного модуля реализуется соответствующей командой пользователя интегрированной среде Borland C++. В качестве команд трансляции используются:

  • Project\Compile (Проект\Компилировать) – активизация пункта Project главного меню, а затем подпункта Compile;

  • горячие клавиши (указаны справа в меню) 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» осуществляется

  • командами Search\Previous Message... (Поиск\Предыдущее сообщение) и Search\Next Message... (Поиск\Следующее сообщение);

  • горячими клавишами Alt + F7 и Alt + F8,

  • указанием мышью;

  • клавишами  и .

Перемещение указателя по строкам в окне «Message», приводит к подсвечиванию строк с ошибками в окне редактирования.

Исправление найденных ошибок выполняется в окне текстового редактора по типовой методике. Исправленный текст необходимо оформить (сохранить) в файл исходного модуля, а затем повторить этап компиляции.