- •Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
- •Блок-схема добавления элемента в таблицу идентификаторов методом хеш-адресации
- •Блок-схема алгоритма поиска элемента в таблице идентификаторов методом хеш-адресации
- •Блок-схема алгоритма добавления элемента в упорядоченный список
- •Блок-схема алгоритма поиска элемента в упорядоченном списке
- •Результаты работы организации таблиц идентификаторов обоими методами
- ••Лексический анализатор – это часть компилятора, которая читает литеры программы на исходном языке
- •Результат работы лексического анализатора
- •Фрагмент графа переходов КА для оператора сравнения “or”, целых чисел и шестнадцатеричной константы
- •Ошибка при не закрытом комментарии!!!
- •Входной язык задан с помощью следующей КС-грамматики:
- •Класс КС-языков допускает распознавание с помощью недетерминированного
- ••В курсовом проекте КС-грамматика является грамматикой операторного предшествования. Для построения анализатора на основе
- •Множество крайних левых и крайних правых терминальных символов.
- •Матрица операторного предшествования
- •Результаты работы синтаксического анализатора
- •Выводы
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
«УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра ТК
Курсовая работа
по дисциплине «Системное программное обеспечение» на тему:«Разработка отдельных фаз компиляции для заданного входного языка»
Выполнил: ст. гр. УТС-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