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

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

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

Кафедра ТК

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

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

Выполнил: ст. гр. УТС-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

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