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

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

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

Кафедра ТК

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

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

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

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

Уфа 2007

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

Нет

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

Нет

i:=2

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

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

Нет

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

Нет

п= пi

Нет i := i + 1

Начало

п = h(A)

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

Да

Да

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

Да

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

Да

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

Да

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

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

Конец

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

Нет

Ид(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

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