Совпадение множества языков МП-автоматов и контекстно-свободных языков — различия между версиями
Bochkarev (обсуждение | вклад) (→Пример.) |
Bochkarev (обсуждение | вклад) (→Построение МП-автомата по заданной КС-грамматике) |
||
Строка 3: | Строка 3: | ||
=== Построение МП-автомата по заданной КС-грамматике === | === Построение МП-автомата по заданной КС-грамматике === | ||
{{Определение | {{Определение | ||
− | |definition= Пусть <tex> G=(V,T,Q,S) </tex> — КС-грамматика. Построим МП-автомат <tex> P=(\{q\},T,V \cup T, \delta ,q,S) </tex>, который допускает <tex> L(G) </tex> по пустому магазину. Функция переходов <tex> \delta </tex> будет определена следующим | + | |definition= Пусть <tex> G=(V,T,Q,S) </tex> — КС-грамматика. Построим МП-автомат <tex> P=(\{q\},T,V \cup T, \delta ,q,S) </tex>, который допускает <tex> L(G) </tex> по пустому магазину. Функция переходов <tex> \delta </tex> будет определена по следующим правилам: |
− | * <tex> \delta(q,\epsilon,A)=\{(q,\beta )| A \rightarrow \beta</tex> — продукция <tex> G \} </tex> — для каждой переменной <tex> A </tex>. | + | *1. <tex> \delta(q,\epsilon,A)=\{(q,\beta )| A \rightarrow \beta</tex> — продукция <tex> G \} </tex> — для каждой переменной <tex> A </tex>. |
− | * <tex> \delta(q,a,a)=\{(q,\epsilon)\} </tex> для каждого терминала <tex> a </tex>. | + | *2. <tex> \delta(q,a,a)=\{(q,\epsilon)\} </tex> для каждого терминала <tex> a </tex>. |
}} | }} | ||
==== Пример. ==== | ==== Пример. ==== | ||
Строка 15: | Строка 15: | ||
*b) <tex> \delta(q,\epsilon,E)={(q,I), (q,E+E), (q,E*E), (q,(E))};</tex> | *b) <tex> \delta(q,\epsilon,E)={(q,I), (q,E+E), (q,E*E), (q,(E))};</tex> | ||
*c) <tex> \delta(q,a,a)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,b,b)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,1,1)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,0,0)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,),))=\{(q,\epsilon)\}</tex>;<tex> \delta(q,(,()=\{(q,\epsilon)\}</tex>;<tex> \delta(q,+,+)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,*,*)=\{(q,\epsilon)\}</tex>; | *c) <tex> \delta(q,a,a)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,b,b)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,1,1)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,0,0)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,),))=\{(q,\epsilon)\}</tex>;<tex> \delta(q,(,()=\{(q,\epsilon)\}</tex>;<tex> \delta(q,+,+)=\{(q,\epsilon)\}</tex>;<tex> \delta(q,*,*)=\{(q,\epsilon)\}</tex>; | ||
+ | Пункты a,b образованы по первому правилу построения функции переходов, пункт c по второму правилу. |
Версия 01:20, 15 января 2011
Эта статья находится в разработке!
Эквивалентность МП-автоматов и КС-языков
Построение МП-автомата по заданной КС-грамматике
Определение: |
Пусть
| — КС-грамматика. Построим МП-автомат , который допускает по пустому магазину. Функция переходов будет определена по следующим правилам:
Пример.
Преобразуем грамматику выражений в МП-автомат. Пусть дана грамматика:
Множеством входных символов является
. Эти символы, вместе с переменными , образуют магазинный алфавит. Функция переходов определена следующим образом:- a)
- b)
- c) ; ; ; ; ; ; ; ;
Пункты a,b образованы по первому правилу построения функции переходов, пункт c по второму правилу.