Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовые проекты / курса не мои / Ильшатей / spo_sanya / Пояснительная записка_my.doc
Скачиваний:
28
Добавлен:
02.05.2014
Размер:
245.76 Кб
Скачать

3 Построение дерева вывода

3.1 Исходные данные

Для построения синтаксического анализатора будем использовать анализатор на основе грамматик операторного предшествования. Этот анализатор является линейным распознавателем (время анализа линейно зависит от длины входной цепочки), для него существует простой и эффективный алгоритм построения распознавателя на основе матрицы предшествования.

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

G({for, do, <, >, =, a, :=, (, ), ;}, {S, F, T, E}, P, S) с правилами P:

SF;

Ffor (T) do F│a:=a

T → F;E;F│;E;F│F;E;;E;

Ea<a│ a>a a=a

3.2 Построение синтаксического анализатора

Множества крайних левых и крайних правых символов L(U), R(U) относительно всех нетерминальных символов грамматики представлены в таблице 2. В таблице 3 описаны итоговые множества крайних левых и крайних правых символов L(U), R(U) относительно всех нетерминальных символов грамматики.

Таблица 2

U

L(U)

R(U)

S

F

;

F

for, a

F, a

T

F, ;

F, E, ;

E

a

A

Таблица 3

U

L(U)

R(U)

S

F, for, a

;, F, a

F

for, a

F, a

T

F, for, a

F, E, a

E

a

a

Множества крайних левых и крайних правых терминальных символов Lt(U), Rt(U) относительно всех нетерминальных символов грамматики и итоговые множества крайних левых и крайних правых терминальных символов Lt(U), Rt(U) относительно всех нетерминальных символов грамматики представлены соответственно в таблицах 4 и 5.

Таблица 4

U

Lt(U)

Rt(U)

S

;

;

F

for, a

do, a

T

;

;

E

<, >, =

<, >, =

Таблица 5

U

Lt(U)

Rt(U)

S

;, for, a, <, >, =

;, do, a, <, >, =

F

for, a, <, >, =

do, a, <, >, =

T

;, for, a, <, >, =

;, do, a, <, >, =

E

a

a

Матрица операторного предшествования показана в таблице 6

Таблица 6 – Матрица операторного предшествования

;

1

for

2

do

3

<

4

>

5

a

6

=

7

:=

8

(

9

)

10

к

;

=

<

<

<

<

<

>

>

for

=

do

>

<

<

<

<

=

>

>

<

>

=

>

>

>

>

=

>

>

a

>

=

=

=

=

>

>

=

>

=

>

>

:=

=

(

<

<

<

<

<

<

=

)

=

н

<

<

<

<

<

<


Остовная грамматика, полученная на основе исходной грамматики выглядит следующим образом:

G’({for, do, <, >, =, a, :=, (, ), ;}, {E}, P, S)

E → E;

E → for (E) do E│a:=a

E → E;E;E│;E;E│E;E;│;E;

E → a<a│ a>a a=a

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

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