57
3)
интерпретатор выполняет программу в
машинно-независимой
форме с помощью входящих в его состав подпрограмм, предварительно
переводя ее в более удобную промежуточную несохраняемую программу;
4)
инкрементный транслятор служит для повторной трансляции
фрагментов программы и дополнений к ней без повторной трансляции всей
программы;
5)
компилятор переднего плана переводит исходную программу в
сохраняемую промежуточную программу на машинно-независимом языке;
6)
препроцессор реализуется как префиксная часть транслятора и
осуществляет перевод программы с
макрорасширения входного языка
транслятора на этот входной язык;
7)
макрогенератор – это препроцессор для ассемблера;
8)
кросс-компилятор, транслируя программу на одной платформе,
формирует объектный модуль для другой платформы;
9)
компилятор компиляторов осуществляет перевод формального
описания языка программирования в транслятор для этого языка;
10)
детранслятор восстанавливает исходную программу на языке
программирования по ее эквиваленту на машинном языке;
11)
дисассемблер – детранслятор для языка ассемблера.
Компоновщики – общее название системных программ, выполняющих
подготовку объектных и загрузочных модулей к выполнению, которые
различаются набором функций.
Типовые функции компоновщиков:
-
перемещение – настройка сегментов на их размещение в
новом
адресном пространстве;
-
связывание – объединение двух и более модулей в единую программу;
-
перекрытие – настройка модулей программы на выполнение с
перекрытиями групп сегментов в основной памяти;
-
загрузка – размещение программы в основной памяти для выполнения.
Разновидности компоновщиков:
1)
редактор связей – формирует загрузочный модуль из объектного,
реализуют
функции связывания, перемещения, иногда перекрытия;
2)
связующий загрузчик реализует все типовые функции кроме
перекрытия и создает немедленно выполняющуюся несохраняемую
программу;
3)
абсолютный загрузчик реализует только
функцию загрузки
программы, имеющей форму абсолютного модуля;
4)
перемещающий загрузчик выполняет функции перемещения и
загрузки, готовит загрузочный модуль к выполнению в
выделенной области
основной памяти и инициирует программу.
На
рисунке
14.2
показаны
схемы
применения
различных
компоновщиков.
В типовой системе программирования обычно предусмотрено наличие
редактора
связей
и
перемещающего
загрузчика.
В
системах
58
программирования с
развитым механизмом динамического связывания
дополнительно используются специальные динамические загрузчики, которые
осуществляют связывание и перемещение во время выполнения программы.
Рисунок 14.2 – Схемы применения а) редактора связей; б) абсолютного
загрузчика; в) связующего загрузчика; г) перемещающего загрузчика.
Достарыңызбен бөлісу: