- •Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
- •Блок-схема алгоритма поиска элемента в таблице идентификаторов, организованной по методу простого рехеширования
- •Блок-схема алгоритма поиска элемента в таблицу идентификаторов, организованной по методу простого списка
- •Результат
- •Результаты работы организации таблиц идентификаторов обоими методами
- •Лексический анализатор
- •Результат работы лексического анализатора
- •Фрагмент графа переходов КА для оператора сравнения “or”, двоичная константы
- •Входной язык задан с помощью следующей КС-грамматики:
- •Матрица операторного предшествования
- •Результаты работы синтаксического анализатора
- •Выводы
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
«УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра ТК
Курсовая работа
по дисциплине «Системное программное обеспечение» на тему:«Разработка отдельных фаз компиляции для заданного входного языка»
Выполнил: ст. гр. УТС-411 Беляев В. В.
Консультант Карамзина А.Г.
Уфа 2007
Блок-схема алгоритма поиска элемента в таблице идентификаторов, организованной по методу простого рехеширования
Блок-схема алгоритма поиска элемента в таблицу идентификаторов, организованной по методу простого списка
Результат
Результаты работы организации таблиц идентификаторов обоими методами
Лексический анализатор
Лексический анализатор – это часть компилятора, которая читает литеры программы на исходном языке и строит из них слова (лексемы) исходного языка.
Лексема (лексическая единица языка) – это структурная единица языка, которая состоит из элементарных символов языка и не содержит в своем составе других структурных единиц языка.
Результатом работы лексического анализатора является перечень всех найденных в тексте исходной программы лексем. Этот перечень представляется в виде таблицы, называемой таблицей лексем
Результат работы лексического анализатора
WH
h
WH1
i
WH2
l
WH3
e
WH4
Фрагмент графа переходов КА операторов цикла “ while” и “ do ”
w |
H |
d |
|
|
X8 |
|
|
|
|
|
|
|
|
|
X12 |
|
DO1 |
X7 |
|
|
|
|
|
||
X7 |
|
|
|
|
o |
|
X16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X7 |
X18 |
ID |
X23 |
|
DO2 |
|
|
|
|
||||
|
|
|
|
|
|
X7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X7 |
|
|
|
|
|
|
X9 |
|
|
|
|
|
|
X7
X23
X7
S E
Фрагмент графа переходов КА для оператора сравнения “or”, двоичная константы
oH
0,1
X11 |
OR |
|
1 |
|
r |
X7 |
X26 |
С |
|
X3
X6
ID |
X23 |
OR X7 |
|
2 |
|||
|
S E
Входной язык задан с помощью следующей КС-грамматики:
G ({ prog, end., if, then, else, endif, begin, end, , white, do, and, or, not, =, <, >, (, ),{, }, -, +, *, /, a,;, :=}, {S, L, O, B, C, K, D, H, E, T},P, S)
P:
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 | while (B) do O| a:=E
B → B or C | C C → C and D | D D →not D | H
H → E < E | E > E | E = E | (B) E → E – T | E + T | E * T | E / T| T T → (E) | a