264 Гл. 4. Теория формальных грамматик и автоматов
Односторонняя линейная грамматика реализуется конечным
автоматом, и порождаемый ею язык называется конечноавто
матным.
Рассмотрим одностороннюю линейную грамматику, все пра
вила которой праволинейные (для определенности) либо заключи
тельные. Без потери общности можно предположить, что каждое
линейное правило имеет вид
А —► аВ, где В — неначальный сим
вол, и что каждое заключительное правило грамматики имеет вид
А а.
Пусть Ai, А2, ..., Ап — нетерминальные символы грамма
тики, причем Ai — начальный символ. Сопоставим грамматике
конечный автомат, каждое внутреннее состояние которого взаимно
однозначно соответствует нетерминальному символу грамматики,
а входной символ — терминальному символу грамматики. При
этом если А{ —¥ aAj — правило грамматики, то тройка (а, A,-, Aj)
определяет функционирование автомата и понимается как переход
от состояния Ai в состояние Aj при считывании входного сим
вола а.
Для определенности будем считать, что при переходе из со
стояния Si в состояние Sj в результате входного воздействия а
автомат вырабатывает на своем выходе символ Ь. Тогда автомат
можно определить как четверку (а, Ъ, Si, Sj).
Если фиксируется начальное состояние S0, то автомат реали
зует оператор Т: _
о — Т[а, Si, Sj),
который в дальнейшем будем называть автоматным.
Автоматный оператор Т переводит входную последователь
ность символов (а,) и выходную (b,j в зависимости от началь
ного состояния и реализуемой односторонней линейной грамма
тики. Автомат удобно представлять в виде функции Т на графе
G = {V, U), каждой вершине которого взаимно однозначно соот
ветствует состояние автомата, и если из состояния S,- в состояние
Sj автомат переходит в результате входного воздействия а, вы
рабатывая при этом выходной символ Ь, то соответствующие вер
шины Vi и Vj соединены дугой (ut, Vj), взвешенной парой (а, Ь).
Таким образом, областью определения этой функции Т является
граф G = (V, U), построенный рассмотренным выше способом, а
областью значений — входные, выходные символы и идентифи
каторы состояний автомата.
Рассмотрим, например, одностороннюю линейную грамматику
с алфавитом терминальных символов M j = {х, у, а, Ь}, с алфави
том нетерминальных символов Mpj = {Si, S2, S3} и следующими
правилами вывода:
Si —> ybS\, Si —¥ xaS2, S2 —> xaS2, S2 —> 1/0S3, S3 —> xbS\.
Эта грамматика реализуется конечным автоматом. Если авто
мат установить в начальное состояние Si и подать на вход после