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

Содержание

Слайд 2

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

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

Слайд 3

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

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

Слайд 4

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

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

Слайд 5

Блок-схема алгоритма поиска элемента в упорядоченном списке min(начало блока элементов)=1; max(конец

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

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

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

max=(

max-min)/2-1

max > min

Начало

Конец

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

Нет

Да

min=( max-min)/2+1

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

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

Слайд 6

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

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

Слайд 7

Лексический анализатор – это часть компилятора, которая читает литеры программы на

Лексический анализатор – это часть компилятора, которая читает литеры программы на

исходном языке и строит из них слова (лексемы) исходно­го языка.
Лексема (лексическая единица языка) – это структурная единица языка, которая состоит из элементарных символов языка и не содержит в своем составе других структурных единиц языка.
Результатом работы лексического анализатора является перечень всех найденных в тексте исходной программы лексем. Этот перечень представляется в виде таблицы, называемой таблицей лексем
Слайд 8

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

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

Слайд 9

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

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

“<”, “>” и “=”
Слайд 10

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

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

шестнадцатеричной константы
Слайд 11

Ошибка при не закрытом комментарии!!!

Ошибка при не закрытом комментарии!!!

Слайд 12

Входной язык задан с помощью следующей КС-грамматики: G({prog, end., if, then,

Входной язык задан с помощью следующей КС-грамматики:
G({prog, end., if, then,

else, endif, begin, end, while, do, and, or, not, =, <, >, (, ), -, +, a, ;, :=},
{S, L, O, B, C, K, D, H, E, T}, P,S))
с правилами Р:
S → prog L end.
L → O | L ; O | L;
O → if B then O else O endif | if B then O endif | begin L end | do O while (B) | a := E
B → B or C | C
C→ C and D | D
D → E < E | E > E | E = E | (B) | not (B)
E → E – F | E + F | E * F | E / F |E
F → (E) | a
Слайд 13

Класс КС-языков допускает распознавание с помощью недетерминированного конечного автомата со стековой

Класс КС-языков допускает распознавание с помощью недетерминированного
конечного автомата со стековой

(или магазинной) памятью – МП – автомата.

МП-автоматом выполняется алгоритм «сдвиг-свертка» для
грамматики операторного предшествования. Для моделирования его
работы необходима входная цепочка символов и стек, в котором автомат
может обращаться не только к самому верхнему символу,
но и к некоторой цепочке символов на вершине стека.

Слайд 14

Множество крайних левых и крайних правых символов В курсовом проекте КС-грамматика

Множество крайних левых и крайних правых символов

В курсовом проекте КС-грамматика является

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

Множество крайних левых и крайних правых терминальных символов.

Множество крайних левых и крайних правых терминальных символов.

Слайд 16

Матрица операторного предшествования

Матрица операторного предшествования

Слайд 17

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

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

Слайд 18