Совпадение множества языков МП-автоматов и контекстно-свободных языков — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Построение МП-автомата по заданной КС-грамматике)
Строка 7: Строка 7:
 
* <tex> \delta(q,a,a)=\{(q,\epsilon)\} </tex> для каждого терминала <tex> a </tex>.
 
* <tex> \delta(q,a,a)=\{(q,\epsilon)\} </tex> для каждого терминала <tex> a </tex>.
 
}}
 
}}
 +
==== Пример. ====
 +
Преобразуем грамматику выражений в МП-автомат. Пусть дана грамматика:
 +
*<tex> I \rightarrow a|b|I1|I0|Ia|Ib </tex>
 +
*<tex> E \rightarrow I|E*E|E+E|(E) </tex>

Версия 00:52, 15 января 2011

Эта статья находится в разработке!

Эквивалентность МП-автоматов и КС-языков

Построение МП-автомата по заданной КС-грамматике

Определение:
Пусть [math] G=(V,T,Q,S) [/math] — КС-грамматика. Построим МП-автомат [math] P=(\{q\},T,V \cup T, \delta ,q,S) [/math], который допускает [math] L(G) [/math] по пустому магазину. Функция переходов [math] \delta [/math] будет определена следующим образом:
  • [math] \delta(q,\epsilon,A)=\{(q,\beta )| A \rightarrow \beta[/math] — продукция [math] G \} [/math] — для каждой переменной [math] A [/math].
  • [math] \delta(q,a,a)=\{(q,\epsilon)\} [/math] для каждого терминала [math] a [/math].

Пример.

Преобразуем грамматику выражений в МП-автомат. Пусть дана грамматика:

  • [math] I \rightarrow a|b|I1|I0|Ia|Ib [/math]
  • [math] E \rightarrow I|E*E|E+E|(E) [/math]