418
правок
Изменения
Нет описания правки
{{Определение
|definition=
'''Иерархия Хомского''' — {{---}} классификация [[формальные грамматики|формальных грамматик]] и [[формальные грамматики|задаваемых ими языков]], согласно которой они делятся на 4 класса по их условной сложности.
}}
== Класс 0 ==
Практического применения в силу своей сложности такие грамматики не имеют.
===Пример===
Терминалы: {a, c, d};
Нетерминалы: {S, A, B};
Продукции:
<tex>
S \rightarrow aBc \\
aB \rightarrow cA \\
Ac \rightarrow d
</tex>
== Класс 1 ==
}}
Языки, заданные этими грамматиками, распознаются с помощью '''линейного линейно ограниченного автомата''' (англ. ''linear bounded automaton'') (недетерминированная машина Тьюринга, чья лента ограничена константой, зависящей от длины входа.)
Как будет показано [[Неукорачивающие и контекстно-зависимые грамматики, эквивалентность|далее]], неукорачивающие грамматики эквивалентны контекстно-зависимым.
===Пример===
Язык <tex>L=\{w \in \Sigma^* | w = 0^n1^n2^n, n \ge 1\}</tex>.
Терминалы: <tex>\Sigma = \{0, 1, 2\}</tex>; Нетерминалы: <tex>\{S, A\}</tex>; Продукции:
<tex>
S \rightarrow 012 \\
S \rightarrow 0TS2 0AS2 \\T0 A0 \rightarrow 0T 0A \\ T1 A1 \rightarrow 11
</tex>
===Пример===
Терминалы: буквы алфавита <tex>\Sigma</tex>;
Продукции: <tex>S\rightarrow\alpha S\alpha\,|\,\alpha\,|\,\varepsilon, \alpha \in \Sigma</tex>;
Все регулярные грамматики могут быть разделены на два эквивалентных класса следующего вида:{{Определение|definition == Класс 3 ='''Леволинейная грамматика''' (англ. ''left-regular grammar'') {{---}} это формальная грамматика, всякое правило из <tex>P</tex> которой имеет вид <tex>A \rightarrow B\gamma</tex> или <tex>A \rightarrow \gamma</tex>, где <tex>\gamma \in \Sigma, A, B \in N</tex>.}} {{Определение|definition =Элементами третьего класса являются '''праволинейные Праволинейная грамматика''' (автоматные)англ. ''right-regular grammar'' грамматики) {{---}} это формальная грамматика, всякое правило из <tex>P</tex> которой имеет вид <tex>A \rightarrow \gamma B</tex>; или <tex>A \rightarrow \gamma</tex>, где <tex>\gamma \in \Sigma, A, B \in N</tex>.}} Оба вида задают одинаковые языки. При этом если правила леволинейной и праволинейной грамматик объединить, то язык будет уже не обязан быть регулярным. Эти языки распознаются с помощью [[Детерминированные конечные автоматы|конечных автоматов]].
== См. также ==
* [[Разрешимые_(рекурсивные)_языки|Разрешимые (рекурсивные) языки]]
* [[Возможность_порождения_формальной_грамматикой_произвольного_перечислимого_языка|Возможность порождения формальной грамматикой произвольного перечислимого языка]]
* [[wikipedia:Linear_bounded_automaton|Wikipedia {{---}} Linear bounded automaton]]
==Источники информации==