Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САПР СУПЕР.doc
Скачиваний:
62
Добавлен:
19.03.2015
Размер:
1.27 Mб
Скачать

5.2. Трансляторы

Выполнение на ЭВМ программы, написанной на каком – либо языке, отличном от машинного, требует преобразования исходной информации в машинные команды, записанные в двоичной системе в ОЗУ. Это преобразование осуществляется программами или техническими устройствами, которые называются трансляторами. Транслятор преобразует заданную информацию с одного языка на другой. Программа на входе транслятора и ее язык называются исходными, на выходе транслятора – объектными.

Трансляторы подразделяются на несколько видов:

- интерпретаторы,

- компиляторы,

- ассемблеры,

- конверторы.

Интерпретатор осуществляет пооператорное (покомандное) преобразование исходного текста программы в машинные команды и ее выполнение.

Компилятор преобразует весь текст программы в объектный

модуль. Затем скомпилированная рабочая программа исполняется.

Если исходный язык – ассемблер, то транслятор называется ассемблером.

Если исходный и объектный языки относятся к одному и тому же уровню языков, то транслятор называется конвертором.

Исполнение программ с использованием интерпретатора занимает больше времени, иногда в сотни раз, чем исполнение скомпилированных текстов. Однако применение интерпретаторов удобно в тех случаях, когда в процессе выполнения программ необходимо вносить изменения в текст.

Процесс трансляции состоит из нескольких этапов, называемых фазами трансляции.

Основные этапы

- лексический и синтаксический анализ,

- генерация кода.

Лексический анализ служит для разделения исходного текста на отдельные элементарные языковые единицы, которыми являются:

- идентификаторы,

- числа,

- метки,

- знаки операций.

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

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

Математическим аппаратом, используемым при построении анализаторов, является аппарат формальных грамматик.

5.3. Формальные грамматики

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

Процесс создания формального языка предполагает:

- выбор алфавита,

- разработку лексики,

- синтаксиса,

- семантики языка.

Алфавит входного языка представляет собой набор допустимых знаков (букв, цифр, специальных знаков), называемых символами языка. Как правило, алфавит входного языка образуется путем усечения таблицы символов КОИ – 7.

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

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

Семантика составляет описание смысла предложений входного языка, то есть она определяет, каким образом каждое предложение обрабатывается в системе.

Для описания языков программирования применяется нотация, которая является системой записи синтаксических правил формальной грамматики.