Пятница, 22.11.2024, 19:47
Приветствую Вас Гость | RSS | PDA

Всё для студента информата

Полезная информация

Материалы для студента

Всё для студента IT » Материалы для студента » Теория языков программирования

Этапы трансляции - Синтез объектной программы

На заключительном этапе трансляции происходит создание выполняемой программы на основе того, что было сделано СемА. Это этап обязательно включает генерацию кода и может также включать оптимизацию получившейся программы. Если подпрограммы транслировались отдельно или использовались библиотечные подпрограммы, то необходима заключительная стадия редактирования связей и загрузки, чтобы получить полностью пригодную для выполнения программу.

Оптимизация.  Обычно СемА безразлична та часть кода, которая уже сгенерирована. Но такая фрагментация может привести к неэффективным кодам, так как обмен данными может  проходить по быстрым регистрам, а СемА будет заново загружать переменные из оперативной памяти. Можно оптимизировать и однократное выполнение повторяющихся общих подвыражений, инвариантных операций из тела цикла, оптимизировать использование регистров, вычисления формул доступа к данным.

Генерация кода. После оптимизации получаем программу в оттранслированном внутреннем коде. Затем  она должна быть преобразована в инструкции ассемблера или машинный код, или в какую-либо другую форму объектного кода, которая и станет результатом трансляции.  Процесс генерации включает в себя определенное форматирование той информации, которая содержится во внутреннем представлении программы. Дале этот код может быть подвергнут обработке ассемблером или редактором связи.

Редактирование связей и загрузка.  Это необязательный этап трансляции. В случае раздельной трансляции подпрограммы имеют почти законченный вид. На данном этапе подпрограммы  объединяются в одну выполняемую программу и следует  только наладить связи между подпрограммами, то есть определить те места, где имеются обращения к внешним данным и другим подпрограммам. Транслятор создает и помещает эти связи в присоединенных таблицах загрузчика. Загрузчик (или редактор связей) загружает различные фрагменты оттранслированного кода в память и использует присоединенные таблицы загрузчика для связывания этих фрагментов  в единую программу, вставляя данные и адреса по мере надобности.

Похожие статьи:

Не нашли то, что Вам нужно?.. Найдите ответ на форуме!
Категория: Теория языков программирования | Добавил: admin (28.04.2011)
Просмотров: 2728 | Теги: Тяп, лекция, трансляция
Сообщество
Помощь
Форма входа
Поиск

Студенческий помощник по информатике © 2024
При цитировании материалов данного сайта, обязательна ссылка на источник: ITstudents.ru



>