Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / СПО2.doc
Скачиваний:
114
Добавлен:
11.02.2014
Размер:
527.87 Кб
Скачать

22. Основные принципы построения транслятора.

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

ПРИМЕР: трансляция программы с языка Паскаль на язык Ассемблер.

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

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

На этапе АНАЛИЗА выполняется распознавание исходной программы, создание и заполнение таблиц идентификатора.

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

ПОСТРОЕНИЕ ТАБЛИЦ ИДЕНТИФИКАТОРОВ.

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

Эти таблицы могут хранить следующую информацию:

Для переменных – имя переменной, тип данных, область памяти;

Для констант – имя, значение;

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

МЕТОДЫ ПОСТРОЕНИЯ ТАБЛИЦ ИДЕНТИФИКАТОРОВ.

  1. Построение в виде непрерывного массива данных.

т.е. путем добавления в ее конец нового элемента (время заполнения TЗ), но время для поиска TП элемента будет велико, и будет зависеть только от количества элементов N таблицы: TП=O(N).

  1. Заполнение таблицы в алфавитном порядке.

Время заполнения зависит от количества элементов, т.к. необходимо будет упорядочивать каждый раз элементы таблицы.

Поиск элемента в таблице может быть логарифмическим: ТП=O(log2N), (т.к. на каждом шаге число элементов, которые могут содержать искомый элемент сокращается наполовину, то максимальное число сравнений равно 1+ log2N).

Бинарный поиск: проверяется средний элемент таблицы,

если искомый элемент больше, то проверяется от доn,

если меньше, то от 1 до .

  1. Построение по методу бинарного дерева.

НАПРИМЕР:

GA, D1, M22, E, A12, DC, F – идентификаторы.

GA – корневая вершина.

Время заполнения: ТЗ=N·O(log2N).

Время поиска: ТП=O(log2N).

4. Построение на основе хэш – функции.

ХЭШ – функция отображает имена идентификаторов на множество целых неотрицательных чисел.

В этом случае каждый элемент таблицы размещается в ячейке, адрес которой возвращает ХЭШ – функция, вычисляемая для этого элемента. Для поиска элемента в таблице необходимо вычислить ХЭШ – функцию для искомого элемента и проверить, не является ли заданная его ячейка пустой (не пустая – элемент найден; пустая – не найден).

Соседние файлы в папке лекции