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

Связь между дмп-процессорами и подграмматиками

Модифицируется таблица и алгоритм “перенос-свертка” для основной грамматики:

  1. Для всех терминалов, обозначающих подграмматики, строится множество терминалов, которые являются первыми в выводе из подграмматики, т.е {X |  < X, XVt, XПОДГРАММ}

  2. Для этих терминалов (обозначающие нетерминал) расширяется операция “перенос”:

ПЕРЕНОС = (ПЕРЕХОД, NПРОЦЕССОРА)

  • В магазин заносится терминал (обозначающий подграмматику), номер текущего процессора, начальный символ магазина (входная гловка не сдвигается)

  • Осуществляется переключение на новый процессор.

Модифицируется алгоритм “перенос-свертка” для подграмматик:

  1. Если процессор обнаруживает неизвестный терминал данной подграмматики или результат функции “перенос” - ошибка, то выполняется -такт.

  2. Если функция от - “свертка” то выполняется операция свертки.

  3. Если функция от - “допуск” то осуществляется переход в предыдущую подграмматику, по следующему алгоритму:

  • снимаются со стека: начальный символ грамматики, начальный символ магазина

  • снимается со стека номер предыдущего процессора и осуществляется переключение на него.

  1. Если функция от - “ошибка”, то разматывается стек и происходит выход со статусом “ошибка”

Пример перехода от основной грамматики к подграмматике составного оператора Управляющая таблица основной грамматики

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 9 * 9 ) :

=========================================

I IPRG!GD !( !) !voi!mai!des!sop!EpsI

=========================================

IPRGI ! ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---I

IGD I ! ! ! ! = ! ! = ! ! I

I---I---+---+---+---+---+---+---+---+---I

I( I ! ! ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---I

I) I ! ! ! ! ! ! ! = ! I

I---I---+---+---+---+---+---+---+---+---I

IvoiI ! ! ! ! ! = ! ! ! I

I---I---+---+---+---+---+---+---+---+---I

ImaiI ! ! = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---I

IdesI ! ! ! ! > ! ! > ! ! I

I---I---+---+---+---+---+---+---+---+---I

IsopI ! ! ! ! ! ! ! ! > I

I---I---+---+---+---+---+---+---+---+---I

I  I ! < ! ! ! < ! ! < ! ! I

=========================================

ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :

---- функция "перенос" ( количество элементов : 10 * 7 ) :

====================================

I I( !) !voi!mai!des!sop!EpsI

====================================

IPRG IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I

I------I---+---+---+---+---+---+---I

IGD IОШ !ОШ !ПЕР!ОШ !ПЕР!ОШ !ОШ I

I------I---+---+---+---+---+---+---I

I( IОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I

I------I---+---+---+---+---+---+---I

I) IОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I

I------I---+---+---+---+---+---+---I

Ivoi IОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ I

I------I---+---+---+---+---+---+---I

Imai IПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I

I------I---+---+---+---+---+---+---I

Ides IОШ !ОШ ! C !ОШ ! C !ОШ !ОШ I

I------I---+---+---+---+---+---+---I

Isop IОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I

I------I---+---+---+---+---+---+---I

I  IОШ !ОШ !ПЕР!ОШ !ПЕР!ОШ !ОШ I

I------I---+---+---+---+---+---+---I

I PRG IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ДОПI

====================================

---- функция "свертка" ( количество элементов : 9 * 4 ) :

====================

I I1 !2 !3 !4 I

====================

IPRG IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

IGD IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

I( IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

I) IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

Ivoi IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

Imai IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

Ides IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

Isop IОШ!ОШ!ОШ!ОШI

I------I--+--+--+--I

I  I1 !2 !3 !4 I

====================

--- правила грамматики :

1) PRG -> voi mai ( ) sop

2) PRG -> GD voi mai ( ) sop

3) GD -> GD des

4) GD -> des

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