Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiProshkina / Архитектура вычислительных систем - лекции_последний.docx
Скачиваний:
154
Добавлен:
18.05.2015
Размер:
1.63 Mб
Скачать

Трансляторы

Транслятор – программа, преобразующая исходных код, представленный на языке программирования, в рабочую программу на объектном языке.

Трансляторы разделяются на 3 группы: ассемблеры, компиляторы и интерпретаторы.

Ассемблер – системная служебная программа, преобразующая символические команды в команды машинного языка.

Ассемблеры осуществляют дословную трансляцию одной символьной команды в одну машинную.

Компилятор – обслуживающая программа, выполняющая трансляцию на машинный язык программы, написанные на исходном языке программирования.

Интерпретатор – программа или устройство, осуществляющее пооператорную трансляцию и выполнение исходной программы. В отличие от компилятора, не порождает программу на машинном языке. Распознав команду машинного языка, сразу выполняет ее.

Эмулятор – программа или программно-техническое устройство, обеспечивающее возможность без перепрограммирования выполнять на данной вычислительной машине программу, использующую коды операций, отличные от использующихся на данной ЭВМ.

Перекодировщик – программа или программное устройство, переводящее программу на машинном языке одной ЭВМ в программу на машинном языке другой ЭВМ.

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

Синтаксис – совокупность правил образования семантически значимых последовательностей символов в данном языке.

Семантика – правила и условия, определяющие соотношения между элементами языка и их смысловыми значениями, а также интерпретацию значений.

10.12.2011

Общее свойства и закономерности присущи как самим языком программирования, так и трансляторам с этих языков.

Рассмотрим фазы процесса трансляции, существующие в компиляторе. Выделаются:

  • Фаза лексического анализа;

  • Фаза синтаксического анализа, состоящая из распознавания синтаксической структуры, семантического разбора, в процессе которого осуществляется генерация промежуточного представления или модели адекватности языка;

  • Фаза генерации кода, осуществляется семантического анализ компонент промежуточного представления или объектной модели языка и их переход период в объектный код;

Наряду с основными фазами процесса трансляции, возможны дополнительные фазы:

  • Исследования и оптимизации промежуточного построения;

  • Фаза оптимизации объектного кода;

Рисунок 46 Лексический анализатор

Лексический анализатор осуществляет чтение входной цепочки символов и их группировку в элементарные конструкции, называемые лексемами.

Синтаксический анализатор осуществляет разбор исходной программы, использую поступающие лексемы, построение синтаксической структуры программы и семантический анализ с формирование объектной модели языка.

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

Генератор кода строит объектный код на основе анализа объектной модели или промежуточного представления.