Правоконтекстные грамматики, эквивалентность автоматам — различия между версиями
Shersh (обсуждение | вклад) м (→Источники информации: категория) |
Ponomarev (обсуждение | вклад) |
||
Строка 34: | Строка 34: | ||
:* Докажем, что если слово допускается автоматом, то его можно вывести в грамматике. Рассмотрим слово <tex> \alpha </tex> длины <tex> k </tex>. Рассмотрим какую-либо последовательность переходов автомата, допускающую данное слово <tex> \langle S,\alpha \rangle \vdash^k \langle ok,\varepsilon \rangle </tex>. Для каждого одношагового перехода в автомате существует соответствующее правило в грамматике. Значит для подпоследовательности переходов из <tex> k-1 </tex> шага <tex> \langle S, \alpha \rangle \vdash^{k-1} \langle U,c \rangle </tex> существует соответствующая последовательность применений правил <tex> S \Rightarrow^{k-1} \alpha c^{-1} U </tex>. Для последнего перехода в автомате <tex> \langle U,c \rangle \vdash \langle ok, \varepsilon \rangle </tex> существует правило <tex> U \Rightarrow c </tex>. Таким образом, существует последовательность применений правил грамматики, выводящая слово <tex> \alpha </tex>. | :* Докажем, что если слово допускается автоматом, то его можно вывести в грамматике. Рассмотрим слово <tex> \alpha </tex> длины <tex> k </tex>. Рассмотрим какую-либо последовательность переходов автомата, допускающую данное слово <tex> \langle S,\alpha \rangle \vdash^k \langle ok,\varepsilon \rangle </tex>. Для каждого одношагового перехода в автомате существует соответствующее правило в грамматике. Значит для подпоследовательности переходов из <tex> k-1 </tex> шага <tex> \langle S, \alpha \rangle \vdash^{k-1} \langle U,c \rangle </tex> существует соответствующая последовательность применений правил <tex> S \Rightarrow^{k-1} \alpha c^{-1} U </tex>. Для последнего перехода в автомате <tex> \langle U,c \rangle \vdash \langle ok, \varepsilon \rangle </tex> существует правило <tex> U \Rightarrow c </tex>. Таким образом, существует последовательность применений правил грамматики, выводящая слово <tex> \alpha </tex>. | ||
}} | }} | ||
+ | ==См. также== | ||
+ | * [[Разрешимые_(рекурсивные)_языки|Разрешимые (рекурсивные) языки]] | ||
+ | *[[Иерархия Хомского формальных грамматик]] | ||
+ | * [[Возможность_порождения_формальной_грамматикой_произвольного_перечислимого_языка|Возможность порождения формальной грамматикой произвольного перечислимого языка]] | ||
== Источники информации == | == Источники информации == |
Версия 12:38, 11 марта 2018
Определение: |
Праволинейной грамматикой (англ. right linear grammar) называется грамматика, в которой все правила имеют вид , . |
Аналогично можно определить леволинейные грамматики.
Теорема: |
Множество языков, задаваемых праволинейными грамматиками, совпадает со множеством языков, задаваемых конечными автоматами. |
Доказательство: |
Пусть имеется конечный автомат. Построим для него праволинейную грамматику. Множеством нетерминалов нашей грамматики будет множество состояний автомата. Для каждой пары состояний и такой, что имеется переход из в по символу , добавим в грамматику правило . Затем для каждой пары состояний автомата и такой, что имеется переход из в по символу , и является допускающим состоянием в автомате, добавим в грамматику правило .
|
См. также
- Разрешимые (рекурсивные) языки
- Иерархия Хомского формальных грамматик
- Возможность порождения формальной грамматикой произвольного перечислимого языка
Источники информации
- Michael A. Harrison Introduction to Formal Language Theory. — Addison-Wesley, 1978. — ISBN 978-0201029550. (с 19-20, 60-63.)
- Wikipedia — Linear grammar