Определение 1.5.1. Контекстной
грамматикой (контекстно-зависимой грамматикой, грамматикой непосредственно
составляющих, НС-грамматикой, грамматикой типа 1,
context-sensitive grammar, phrase-structure grammar)
называется порождающая грамматика, каждое правило которой имеет вид ,
где , ,
,
.
Пример 1.5.2. Грамматика
не является контекстной (последние три правила не имеют требуемого
вида).
Определение 1.5.3. Контекстно-свободной
грамматикой (бесконтекстной грамматикой,
КС-грамматикой, грамматикой типа 2, context-free grammar) называется
порождающая грамматика, каждое правило которой имеет вид ,
где , .
Пример 1.5.4. Грамматика
является контекстной, но не контекстно-свободной (последние пять
правил не имеют требуемого вида).
Определение 1.5.5. Линейной
грамматикой (linear grammar)
называется порождающая грамматика, каждое правило которой имеет вид или
,
где , ,
,
.
Грамматика
является контекстно-свободной, но не линейной (первые два правила
не имеют требуемого вида).
Определение 1.5.7. Праволинейной
грамматикой (рациональной грамматикой,
грамматикой типа 3, right-linear
grammar) называется порождающая грамматика, каждое
правило которой имеет вид или
,
где , ,
.
Пример 1.5.8. Грамматика
является линейной, но не праволинейной
(первое правило не имеет требуемого вида).
Пример 1.5.9. Грамматика
праволинейная. Она порождает язык .
Пример 1.5.10. Грамматика
праволинейная.
Пример 1.5.11. Грамматика
праволинейная. Обобщенный вариант языка, порождаемого этой
грамматикой, используется в доказательстве разрешимости арифметики Пресбургера.
Определение 1.5.12. Правила вида называются
-правилами или эпсилон-правилами.
Лемма 1.5.13. Каждая праволинейная грамматика является линейной. Каждая линейная
грамматика является контекстно-свободной. Каждая контекстно-свободная
грамматика без -правил
является контекстной грамматикой.
Определение 1.5.14. Классы грамматик типа 0, 1, 2 и 3
образуют иерархию Хомского (Chomsky
hierarchy).
Определение 1.5.15. Язык называется языком типа 0 (контекстным языком, контекстно-свободным языком, линейным
языком, праволинейным языком), если он
порождается некоторой грамматикой типа 0
(соответственно контекстной грамматикой, контекстно-свободной грамматикой,
линейной грамматикой, праволинейной грамматикой).
Контекстно-свободные языки называются также алгебраическими
языками.
Пример 1.5.16. Пусть дан произвольный алфавит
Тогда язык является
праволинейным, так как он порождается грамматикой