АССЕМБЛЕР
— общепринятое название транслятора с автокода. А. переводит исходную программу, написанную на автокоде, в перемещаемую программу на языке машинном. Поскольку А. осуществляет трансляцию на язык загрузчика, при загрузке программы необходима настройка условных адресов, т. е. адресов, значения которых зависят от расположения данной программы в памяти ЦВМ и от ее связей с другими независимо транслированными программами.
В простейшем случае А. переводит одно предложение исходной программы в один объект (команду, константу) модуля загрузки (т. н. трансляция «один в один»). При этом взаимное расположение объектов в модуле загрузки и, в конечном итоге, в памяти машины определяется порядком предложений в исходной программе на автокоде и полностью зависит от программиста. А. выполняет и вспомогательные функции, такие, как подготовка к печати документов требуемой формы, регистрация связей данной программы с другими программами и т. д. Для этой цели в автокодах предусматриваются команды А., которые не порождают объектов в рабочей программе и предназначены только для указания вспомогательных действий А.
Трансляция обычно требует двух просмотров исходной программы: при первом просмотре осуществляется памяти распределение и присвоение значений символическим именам; при втором — формируется рабочая программа в виде модуля загрузки. В процессе трансляции А. проводит полный синтаксический контроль исходной программы (см. Синтаксический анализ программ), обеспечивая при этом достаточно точную диагностику ошибок по месту и по характеру.
Расширение возможностей автокодов достигается за счет использования макрокоманд,
строящихся по правилам, близким к правилам написания команд автокода, но описывающих более сложные ф-ции, для реализации которых требуется группа обычных команд. В этом случае перед трансляцией производится замена макрокоманд макрорасширениями — последовательностями команд на базовом языке в соответствии с макроопределениями. В последних задается прототип макрокоманды со структурой списка параметров и процедура генерирования макрорасширения. Транслятор, выполняющий ф-ции макрогенератора и А., наз. макроассемблером. При трансляции с языков высокого уровня А. нередко используется для выполнения завершающей фазы трансляции. Ю. М. Баякоеский.