logo
Лекции по теории автоматов

Алгоритм получения правил, не содержащих правил вывода нетерминальных символов.

  1. Грамматика имеет набор правил R. Разобьем его наR1иR2 , причем вR1будут входить только правила типаAB, гдеA,B€Vn

  2. Для любого символа Aiстоит в левой части правила нетерминала построим подмножество правил (Ai) следующим образом, если существует

Ai  An ; An ηB , то в SAi войдет Ai  ηB.

  1. Строим новую грамматику, создающую следующий набор правил:

R=Vi=1kS(Ai)vRiгдеk– число нетерминальных символов, находящихся слева в правилах набораRподмножества. Построение грамматики будет эквивалентно исходной и не создаст правил нетерминалов.

Рассмотрим пример:

G:

R = {IaM , MA , AaA , AB , BbB , Bb}

Vt = {a , b}

Vn = {I , M , A , B}

R1 = {M  A , A  B}

R2 = {I  aM , A  aA1 B  bB , B  b}

S(M) = {MaA , M  bB , M  b}

S(A) = {A  bB , A  b}

R = {M  aA , M  bB , M  b , A bB , A b , I  aM , A  aA , B  bB , B  b}

Грамматика правосторонняя или левосторонняя контекстно-свободная, создается правило нетерминал-нетерминал, может быть преобразовано к автоматному виду.

Грамматика, контекстно-свободная создающаяся и правосторонней и левосторонней не может быть преобразована а автоматному виду.

Если грамматика имеет правило вида:

AφAψ,φ,ψ€V*φ≠ε, то она не может быть преобразована к контекстно-свободной.

Самовосстанавливающаяся грамматика, которая содержит правило вида: AφAψ, гдеφ,ψ– любые символы, причем не пустые не может быть преобразована к автоматному виду.

Данный вывод вытекает из вывода два.

Если грамматика порождает не пустой язык, то в общем случае можно построить эквивалентную ей автоматную грамматику, для этого нужно получить язык, затем построить автоматную грамматику.