112 3. Введение в теорию языков
Теорема 3.2 (сильная форма Хомского). По каждой кон-
текстно-свободной грамматике G эффективно строится
эквивалентная грамматика G
0
= (N, T, S, P ), все правила
которой имеют вид A → a или A → BC, где A, B, C ∈ N и
a ∈ T , причем выполняются следующие ограничения:
если A → BC — правило из P , то B 6= C;
если A → BC — правило из P , то для каждого правила A →
DE из P выполняется E 6= B и D 6= C.
Если нужно порождать и пустую строку, то в приведенных
выше теоремах следует допустить еще правило S → λ.
Теорема 3.3 (форма Куроды). По каждой грамматике G ти-
па 0 эффективно строится эквивалентная грамматика G
0
=
(N, T, S, P ), все правила которой имеют вид A → BC, A → a,
A → λ или AB → CD, где A, B, C, D ∈ N и a ∈ T .
Теорема 3.4 (форма Пенттонена). По каждой грамматике
G типа 0 эффективно строится эквивалентная грамматика
G
0
= (N, T, S, P ), все правила которой имеют вид A → x, где
x ∈ (N ∪ T )
∗
, |x| 6 2 или AB → AC, где A, B, C ∈ N.
Сходные результаты верны и для неукорачивающих грам-
матик; нужно лишь исключить правила вида A → λ, оставив
только правило S → λ, если нужно, чтобы пор ождаемый язык
содержал пустую строку.
Теорема 3.5 (формы Гефферта). (1) Каждый рекурсивно пе-
речислимый язык порождается грамматикой G = (N, T, S, P )
с N = {S, A, B, C}, правилами вида S → uSv, S → x, где
u, v, x ∈ (T ∪ {A, B, C})
∗
, и единственным не контекстно-сво-
бодного правилом ABC → λ.
(2) Каждый рекурсивно перечислимый язык порождается
грамматикой G = (N, T, S, P ) с N = {S, A, B, C, D}, прави-
лами вида S → uSv, S → x, где u, v, x ∈ (T ∪ {A, B, C})
∗
, и
ровно двумя не контекстно-свободными правилами AB → λ и
CD → λ.
Другими словами, каждый рекурсивно перечислимый язык
получается из некоторого минимального линейного языка при-