Изменения

Перейти к: навигация, поиск

Иерархия Хомского формальных грамматик

377 байт убрано, 21:15, 17 ноября 2014
Нет описания правки
Языки, заданные этими грамматиками, распознаются с помощью '''линейно ограниченного автомата''' (англ. ''linear bounded automaton'') (недетерминированная машина Тьюринга, чья лента ограничена константой, зависящей от длины входа.)
Как будет показано [[Неукорачивающие и контекстно-зависимые грамматики, эквивалентность|в другом конспектеИзвестно что]], неукорачивающие грамматики эквивалентны контекстно-зависимым.
===Пример===
Язык <tex>L=\{w \in \Sigma^* | w = 0^n1^n2^n, n \geqslant 1\}</tex> Терминалы: <tex>\Sigma = \{0, 1, 2\}</tex> Нетерминалы: <tex>N = \{S, A\}</tex>
Продукции:
'''Контекстно-свободная грамматика''' (англ. ''context-free grammar'') {{---}} это формальная грамматика, всякое правило из <tex>P</tex> которой имеет вид <tex>A \rightarrow\beta</tex>, где <tex>A\in N </tex>, <tex>\beta \in \{\Sigma \cup N\}^{+}</tex>.
}}
То есть грамматика допускает появление в левой части правила только одного нетерминального символа.
===Пример===
Язык <tex>L=\{w \in \Sigma^* | w = w^R\}</tex> (язык палиндромов). Терминалы: буквы алфавита <tex>\Sigma</tex> Нетерминалы: <tex>N = \{S\}</tex>
Продукции: <tex>S\rightarrow\alpha S\alpha\,|\,\alpha\,|\,\varepsilon, \alpha \in \Sigma</tex>
===Пример===
Язык <tex>L</tex> для регулярного выражения <tex>a^*bc^*</tex>. Терминалы: <tex>\Sigma = \{a, b, c\}</tex> Нетерминалы: <tex>N = \{S, A\}</tex>
Продукции:
418
правок

Навигация