Праволинейная грамматика – грамматика, в которой правая часть каждого правила содержит не более одного терминального символа.
Преобразование в праволинейную грамматику:
Пример 1
| Пример 2
|
|
|
Задана грамматика:
- <S>
a<A> - <S>
bc - <S>
<A> - <A>
abb<S> - <A>
c<A> - <A>
ε
Задача: построить автомат.
2,3,4 правила нуждаются в преобразовании.
2.
. Обозначение «ε» тут несущественно. Можно записать любой символ.
4. 
3.
- здесь просто переписываем все случаи чему равно <A>
В результате получаем следующую грамматику:
- <S>
a<B> - <S>
b<cε> - <cε>
c<ε> - <ε>
ε - <S>
a<bbS> - <bbS>
b<bS> - <bS>
b<S> - <S>
c<A> - <S>
ε - <A>
a<bbS> - <A>
c<A> - <A>
ε
Что можно записать следующей таблицей:
| a
| b
| c
|
|
<S>
| <A>,<bbS> - недетерминированность
| <cε>
| <A>
| допустимо
|
<cε>
| -
| -
| <ε>
| -
|
<ε>
| -
| -
| -
| допустимо
|
<bbS>
| -
| <bs>
| -
| -
|
<A>
| <bbS>
| -
| <A>
| допустимо
|
<bs>
| -
| <S>
| -
| -
|