Скачиваний:
30
Добавлен:
02.05.2014
Размер:
531 Кб
Скачать

Курсовой проект по СПО на тему: «Компилятор»

Выполнил: Студент гр. Т28-421 Пестов А. В.

Уфа – 2006

Системное Программное Обеспече ние

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

Таблица

идентификаторов

Схема трансляции:

Исходная

 

 

Лексический анализ

 

 

программа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ и локализация

 

 

 

Синтаксический разбор

 

 

обнаруженной ошибки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сообщение об

 

 

 

 

Семантический анализ

 

 

ошибке

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ

Внутреннее

представление

программы

Подготовка к генерации кода

Генерация кода

Синтез

Объектная

программа

Системное Программное Обеспе чение

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

Методы организации ТИ:

Простой список;

Упорядоченный список;

Простое рехэширование;

Рехэширование с использованием псевдослучайных чисел;

Рехэширование с помощью произведения;

Бинарное дерево;

Метод цепочек.

Системное Программное Обеспе чение

Метод рехэширования с помощью произведения

Для организации таблицы идентификаторов по методу рехэширования необходимо­ определить все хэш-функции h[i] для всех i. Чаще всего функции h[i] определяют как некоторые модификации хэш-функции h.

h[i](A) = (h(A)∙i) mod N,

где N – максимальное значение хэш-функции.

Системное Программное Обеспе чение

Блок-схема добавления элемента в ТИ по методу

рехэширования с помощью произведения

 

начало

 

 

 

 

Вычислить ХФ

 

 

 

 

для нов. эл. А,

 

 

 

 

n=h(A)

 

 

 

да

Ячейка по адр. n пустая?

нет

 

 

 

 

 

 

 

i = 1;

 

По адр. n

 

 

n[i]=h[i](A)

 

размещаем

 

 

 

идентификатор А

 

 

 

 

 

да

 

нет

 

 

 

Ячейка по адр. n[i] пустая?

 

 

 

 

да

нет

 

 

 

n[i]=n

 

 

По адр. n[i]

 

 

 

 

размещаем

 

 

i++;

 

идентификатор А

 

 

 

 

Сообщение об

 

 

 

 

 

 

 

 

ошибке

 

 

конец

 

 

 

 

Системное Программное Обеспе

 

 

чение

 

 

 

Блок-схема алгоритма поиска элемента в ТИ,

организованной по методу рехэширования с

помощью произведения

 

 

 

 

начало

 

 

 

 

 

Вычислить ХФ

 

 

 

 

 

для нов. эл. А,

 

 

 

 

 

n=h(A)

 

 

 

 

да

Ячейка по адр. n пустая?

нет

 

 

 

 

 

 

 

 

 

Имя по адр. n совпадает с А?

 

 

 

Элемент не

 

 

i = 1;

 

 

найден

 

 

 

 

Элемент

 

 

 

 

 

 

 

 

 

 

найден

 

 

 

 

 

 

 

n[i]=h[i](A)

 

 

 

 

да

 

нет

 

 

 

Ячейка по адр. n[i] пустая?

 

 

 

 

 

да

n[i]=n

нет

 

 

Элемент не

 

 

 

 

 

 

 

 

 

найден

Элемент не

 

 

 

 

 

 

Имя по адр. n[i] совпадает с А?

 

 

 

найден

 

 

 

 

 

Элемент

i++;

 

 

 

 

найден

 

 

конец

 

 

 

 

 

 

Системное Программное Обеспе

 

 

 

чение

 

 

 

Метод организации ТИ простым списком

При использовании данного метода элементы таблицы располагаются в порядке поступления.

Поиск в этом случае требует сравнения с каждым элементом таблицы, пока не будет найден подходящий. Для таблицы, содержащей N элементов, в среднем будет выполнено N/2 сравнений.

Недостатком метода является то, что если N велико, то способ не является эффективным.

Системное Программное Обеспе чение

Блок-схема добавления элемента в ТИ по методу

простого списка

 

начало

 

 

n=0;

 

да

Ячейка по адр. n пустая?

нет

 

 

По адр. n

 

n++;

 

 

размещаем

 

 

идентификатор А

 

 

конец

Системное Программное Обеспе чение

Блок-схема алгоритма поиска элемента в ТИ,

организованной с помощью метода простого

списка

 

начало

 

 

 

 

n=0;

 

 

 

да

Ячейка по адр. n пустая?

нет

 

 

 

 

Элемент

да

Имя по адр. n совпадает с А?

нет

не найден

 

 

 

 

 

 

 

 

 

 

n++;

 

Элемент

 

 

 

 

найден

 

 

 

конец

Системное Программное Обеспе чение

Результаты

Метод рехэширования с помощью произведения:

всего сравнений: 8;

в среднем сравнений: 0,8;

Метод простого списка:

всего сравнений: 55;

в среднем сравнений: 5,5.

Системное Программное Обеспе чение

Соседние файлы в папке Курсовая СПО