Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Матрицы и функции предшествования.




Иногда вводят 2 числовые функции, обладающие свойствами: если Х⋖.Y, то Ф1(Х)<Ф2(Y) и т.д. для ≐, ⋗. Нужно использовать топологическую сортировку.

Кстати, используя сортировку нетерминалов, можно проще строить функции L и R.

  l L lt Lt r R rt Rt
F (a (a (a (a )a ) a (a )a
T TF TF(a * *(a F F)a * *)a
E ET ETF (a + +*(a T TF) a + +*)a

lt (A) = {tÎST | A ® tz или ($ C ÎSN) A ® Ctz }

rt (A) = {tÎST | A ® zt или ($ C ÎSN) A ® ztC }

Lt (A) = lt (A) È lt (B) "(B Î L (A) Ç SN)

Rt (A) = rt (A) È rt (B) "(B Î R (A) Ç SN)

Lt (A) = {tÎST | A Þ+ tz или ($ C ÎSN) A Þ+ Ctz }, Rt (A) = {tÎST | A Þ+ zt или ($ C ÎSN) A Þ+ ztC }

4.7. Грамматики операторного предшествования (ГОП). (АУ-492)

Операторной грамматикой называется приведенная грамматика без е -правил, в которой правые части правил не содержат смежных нетерминалов.

Пример: G0-операторная грамматика. Отношения предшествования задаются на ST È {$}. Пусть a, b ÎST, gÎSNÈ{ e }. Тогда ab Û (A ® aagbb) Î P,

ab Û (A ® aaBb) Î P & (B Þ+ gbd Û b Î Lt (B)) $⋖ a Û S Þ+ gaa Û a Î Lt (S),

ab Û (A ® aBbb) Î P & (B Þ+ dag Û a Î Rt (B)) a ⋗$ Û S Þ+ aag Û a Î Rt (S).

Операторная грамматика называется грамматикой операторного предшествования (ГОП), если между любыми двумя терминалами выполняется не более одного отношения операторного предшествования. Оказывается, что G 0 является ГОП.

 

  ( a * + ) $
)    
a    
*
+
(  
$    

По G строится остовная грамматика G S = ({ S }, ST, P ¢, S):

A ®Y1…Y m Î P Þ S®X1…X m Î P ¢ & Xi = if Yi ÎST then Yi else S.

Т.е. все нетерминалы заменяются на корневой символ, а если при этом возникнет цепное правило (S®S) Î P¢, то его удаляют.

Легко видеть, что L (G) L (Gs).

Для G 0 остовной будет грамматика G 2: E ® E + E | E * E | (E) | a.

Она, очевидно, неоднозначна. Но матрица-то строилась по G 0!!

Построение анализатора, используещего ОП.

Вход: ГОП. Выход: дерево свертки. Алгоритм см. ГПП.

Стек Вход Сравнение Действие Основа
$ a+a*a$ перенос    
$a +a*a$ свертка a  
$E +a*a$ перенос    
$E+ a*a$ перенос    
$E+a *a$ свертка a  
$E+E *a$ перенос    
$E+E* a$ перенос    
$E+E*a $ свертка a  
$E+E*E $ свертка E*E  
$E+E $ свертка E + E  
$E $   УСПЕХ    

Восстанавливаем по правому разбору:

       
 
   
 

 


4.8. Сравнительный анализ грамматик и языков. (АУ1 502, АУ2 193)

КС-грамматики É ГОП Примеры языков разных типов. (m, n ³ 1)

È

однозначные

È

LR É LL

È

LR(1)

È

ГПП

Примеры грамматик. G1ÎLL(1): S ® AS | e, A ® aA | b. G2ÎLR(1): S ® SaSb | e.

G3ÎLL(2): S ® abA | e, A ® Saa | b. G4ÎLL(2): S ® aAaa | bAba, A ® b | e.

G5ÎLL(3): S ® aAaB | aAbB, A ® ab | a, B ® cB | a.???

G6ÎLR(0): S ® B | C, B ® aB | b, C ® aC | c. G7ÏLR(k): S ® Ab | Dc, A ® Aa | e, D ® Da | e.

G8ÎLR(2)???: S ® aB, B ® abbb | abba. ~ G9: S ® aabbC, C ® a | b.

4.9. Обработка синтаксических ошибок.

Обработка состоит в диагностике (определение типа и места) ошибки и нейтрализации.

Стратегии нейтрализации.

1. Режим переполоха (недопустимый символ игнорируется, изолируются все последующие символы до так называемого опорного; из стека удаляются символы, связанные с удаленным фрагментом).

2. Исключение символов (игнорирование символов до допустимого).

х:= s +y+ z)*(w + v) первую скобку удаляем и анализируем дальше.

Надо быть осторожным, особенно при удалении опорного символа.

3. Вставка символов (между недопустимыми символами вставляется символ, делающий их допустимыми). Вставка может привести к зацикливанию.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных