Скачиваний:
17
Добавлен:
01.05.2014
Размер:
37.89 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет

КАФЕДРА МО ЭВМ

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ N6

по дисциплине "Теория языков программирования"

“Алгоритм разбора для LR(0) – грамматик.”

Преподаватель: Самойленко В.П.

студенты гр. 0341 Юбрин А.Н.

Шин Е.Д.

Санкт-Петербург

2002

1 Построить LR(0) – распознаватель грамматики G = (T,N,S,R).

T= {a,b,c}

N= {S,A,B}

R= {S  aSb (1), S  aSc (2), S  ab (3)}

V={S,a,b,c}

VP={S0, a11, S12, b13, a21, S22, c23, a31, b32, }

  1. Построим управляющую таблицу, для функции f

Она должна содержать 10 строк помеченных символами из множества VP и 4 столбца помеченных символами из T{}

Управляющая таблица f

a

b

c

S0

ДОП

a11

П

П

П

S12

П

П

П

b13

C,1

C,1

C,1

C,1

a21

П

П

П

S22

П

П

П

c23

C,2

C,2

C,2

C,2

a31

П

П

П

b32

C,3

C,3

C,3

C,3

П

П

П

Построим таблицу ВПОД

Для этого определим отношения

S12 ВПОД b13

S22 ВПОД c23

a31 ВПОД b32

 ВПОД Y, где YВПЕРВ(S0), ВПЕРВ(S0)={a11, a21, a31, S0}

a11 ВПОД Y, где Y ВПЕРВ(S12)={a11, a21, a31, S12}

a21 ВПОД Y, где Y ВПЕРВ(S22)={a11, a21, a31, S22}

S0

a11

S12

b13

a21

S22

c23

a31

b32

S0

a11

1

1

1

1

S12

1

b13

a21

1

1

1

1

S22

1

c23

a31

1

b32

1

1

1

1

Построим по таблице недетерминированную управляющую таблицу для g

Управляющая таблица f

a

b

c

S

S0

a11

a11, a21, a31

S12

S12

b13

b13

a21

a11, a21, a31

S22

S22

c23

c23

a31

b32

b32

a11, a21, a31

S0

Преобразуем в детерминированный автомат

{a11, a21, a31} - ax

{S12, S22} - Sx

Запишем окончательный вариант управляющей таблицы

a

b

c

a

b

c

S

S0

ДОП

ax

П

П

П

ax

b32

Sx

Sx

П

П

П

b13

c23

b13

C,1

C,1

C,1

C,1

c23

C,2

C,2

C,2

C,2

b32

C,3

C,3

C,3

C,3

П

П

П

ax

S0

ПРИМЕР работы анализатора

SaScaabc

(2) (3)

Для цепочки: aabc

Начальная конфигурация (, aabc, ) |(ax, abc, ) |(axax, bc, ) |(axaxb, c, ) |

(axSx, c, 3)|(axSxc32, , 3) |(S0, , 32) |(, , 32)

Выходная цепочка: 3 2

Соседние файлы в папке Лабораторные работы 1-7(старые)