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

Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования

«УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра ТК

Курсовая работа

по дисциплине «Системное программное обеспечение» на тему:«Разработка отдельных фаз компиляции для заданного входного языка»

Выполнил: ст. гр. УТС-412 Ковалев Е. Н.

Консультант Карамзина А.Г.

Уфа 2007

Блок-схема добавления элемента в таблицу идентификаторов методом хеш-адресации

Нет

Совпадает элемент в ячейке

п с добавляемым элементом

А?

Нет

i:=2

пi = (h(A) * pi) mod Nm,

ячейка по адресу ni пустая ?

Нет

Совпадает эл-нт в ячейке пi с добав. эл-ом А?

Нет

п= пi

Нет i := i + 1

Начало

п = h(A)

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

Да

Да

Да

Добавляем элемент в ячейку по адресу n

Такой элемент уже существует

Добавляем элемент в ячейку по адресу ni

Да

Такой элемент уже существует

Да

Таблица заполнена

Конец

Блок-схема алгоритма поиска элемента в таблице идентификаторов методом хеш-адресации

Нет

Ид(n)=А

Нет

i:=1

пi = (h(A) + pi) mod Nm,

ячейка по адресу ni пустая ?

Нет

Ид(ni)=А

Нет

i := i + 1

 

Начало

 

 

 

 

 

 

 

 

 

 

п = h(A)

 

 

 

 

ячейка по адресу

 

Да

 

 

 

 

 

n пустая ?

 

 

 

 

 

 

 

Элемент

Да

 

 

не найден

 

 

 

 

Элемент найден

 

 

 

 

 

 

 

 

 

Да

Да

Элемент

не найден

 

Элемент найден

 

Конец

Блок-схема алгоритма добавления элемента в упорядоченный список

 

Начало

 

 

i=1

 

 

Поместить элемент в ячейку с

 

 

адресом i

 

 

j=1, i ,1

 

 

Ид(j)> Ид(j+1)

Нет

 

 

i=i+1

Да

 

 

 

 

buf=Ид(j)

 

 

Ид(j)=Ид(j+1)

 

 

Ид(j+1)=buf

 

Да

Есть

 

 

 

 

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

 

 

Нет

 

 

Конец

 

Блок-схема алгоритма поиска элемента в упорядоченном списке

Начало

min(начало блока элементов)=1; max(конец блока элементов)=N;

ИИд=Ид((max-min)/2+1)

Элемент найден

 

Да

 

ИИд < Ид((max-min)/2+1)

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max=( max-min)/2-1

 

 

min=( max-min)/2+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max > min

Элемент не найден

Конец

Результаты работы организации таблиц идентификаторов обоими методами

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

Лексема (лексическая единица языка) – это структурная единица языка, которая состоит из элементарных символов языка и не содержит в своем составе других структурных

единиц языка.

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

Результат работы лексического анализатора

Фрагмент графа переходов КА для пробела, разделяющего знака, комментариев, операторов сравнения “<”, “>” и “=”

 

 

 

>

H

;

 

 

<

{

 

 

 

 

=

 

 

 

 

 

X4

B1

 

B2

B3

KO

T

X2

 

X2

X2

}

X2

 

 

 

 

 

 

S E

Фрагмент графа переходов КА для оператора сравнения “or”, целых чисел и шестнадцатеричной константы

o

H

0

X27

 

 

 

 

С

X11

OR

X7

X26

X3

 

 

 

 

 

r

X6

 

 

 

 

SH X31

X25

I

X23

OR1

X7

SH1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X24

 

X5

 

 

 

 

 

X22

D h

S E

Соседние файлы в папке ПЗ по СПО