Научная статья на тему 'Особенности канонических разделенных грамматик'

Особенности канонических разделенных грамматик Текст научной статьи по специальности «Математика»

CC BY
132
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАЗДЕЛЕННЫЕ ГРАММАТИКИ / ЭКВИВАЛЕНТНОСТЬ / SEPARATED GRAMMARS / UNIQUENESS

Аннотация научной статьи по математике, автор научной работы — Соловьев С. Ю.

Рассматривается класс канонических разделенных грамматик, способных порождать те же языки, что и разделенные грамматики общего вида. Приводятся основные свойства и два характеристических признака канонических грамматик. Предлагается метод унификации нетерминальных символов и доказывается единственность канонического представления разделенной грамматики.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Особенности канонических разделенных грамматик»

УДК 519.682.1

С. Ю. Соловьев1

ОСОБЕННОСТИ КАНОНИЧЕСКИХ РАЗДЕЛЕННЫХ ГРАММАТИК

Рассматривается класс канонических разделенных грамматик, способных порождать те же языки, что и разделенные грамматики общего вида. Приводятся основные свойства и два характеристических признака канонических грамматик. Предлагается метод унификации нетерминальных символов и доказывается единственность канонического представления разделенной грамматики.

Ключевые слова: разделенные грамматики, эквивалентность.

1. Введение. В 1974 г. Бруно Курсель [1] доказал существование канонического представления разделенных грамматик в нормальной форме Грейбах. В настоящей работе развивается иной подход к построению канонических грамматик, согласно которому условие нормализации

1 Факультет ВМК МГУ, проф., д.ф.-м.н., e-mail: solovievQglossary.ru

заменяется требованием обязательной альтернативности. Каждая каноническая грамматика такого рода содержит наименьшее количество нетерминальных символов по сравнению с прочими эквивалентными ей разделенными грамматиками. В рамках предложенного подхода доказываются два признака и единственность канонического представления; попутно предлагаются новые доказательства некоторых известных [1] утверждений.

2. Разделенные грамматики. Строительным материалом любой формальной грамматики являются символы двух непересекающихся алфавитов, первый из которых называется алфавитом терминальных символов (терминалов), а второй — алфавитом нетерминальных символов (нетерминалов). Из числа нетерминалов выделяется особый начальный символ. Везде далее используются обозначения: £ — алфавит терминалов; N — алфавит нетерминалов; Б — начальный символ; I) — нетерминал из Ж; /V' — алфавит /V \ {Б \: а. Ь. с — терминалы из 1!; А, В, С — нетерминалы из Ж'; х, у, г — цепочки терминалов (предложений) из £*; а, /3 — цепочки из (Ы и I!)*; (р, ф — цепочки из (Ж' и £)+; ц, р, г/ — цепочки из (Ж' и £)*.

Разделенной грамматикой [2] называется четверка О = {N,11, Р, Б), где Р — множество правил вывода Б ^ Ь/З, в которых каждой паре (Б, Ь) отвечает не более одного правила. Правило вывода I) г Ь:1 называется Б-правилом, а цепочка Ь/З — альтернативой нетерминала Б. В примерах принято задавать грамматики правилами вывода, из которых извлекаются остальные члены четверки. В литературе разделенные грамматики также именуются строгими разделенными грамматиками и простыми ЬЬ(1)-грамматиками. Разделенные грамматики в нормальной форме Грейбах называются «-грамматиками [1].

Пусть О — разделенная грамматика и I.. 1.\ — некоторые языки, Ь, 1.\ С Е*. Далее используются обозначения: Р(Б) — множество всех 1)-правил из Р; Р(Ых) — множество всех 1)-правил, где Б € -ЛОс и Ых С Ы; 11(0,0) — множество цепочек-альтернатив {а: О-чае Р(1))}; х\\Ь — множество цепочек {г: гг е Ь}; |а| — длина цепочки а; е — цепочка нулевой длины; х — операция

произведения языков: Ьх. Ь\А= {ху: х € Ь, у € => — бинарное отношение непосредственного левого вывода: а,\ => а2, если и а2 можно представить в виде хБао и хЬ/Зщ, где Б ^ Ь/З — правило из Р. В общем случае левый вывод жо1?о/Зо =4>+ хп имеет вид

жо-Со/Зо => х1Б1р1 =>...=> жп_11)п_1/Зп_1 => хп. (1)

Производным языком для грамматики О и начальной цепочки а будем называть множество предложений Ь(С,а) = {ж: а =4>* ж}. Язык, порождаемый разделенной грамматикой О, есть множество Ь(С,Б). В соответствии со сложившейся традицией язык Ь(С,Б) будем называть разделенным языком. Грамматики О и О 1 называются эквивалентными, если Р(0,Б) — Р(С^1,Б).

Примером разделенной грамматики, демонстрирующим многие последующие рассуждения,

является грамматика

д: Б ы> 1 с А, Ь(д, Б) = {с, Ьа, ЬЬ} х Ь(д, А),

А а | ЪА | сСВ, ЩЛ) = {Ь, са, сЬ} х {а},

В а ЬВ сВ, Ь(д,В)

С а 1 Ь, Ь(д,С) = Ь },

в а А | ЬВ, = {а,Ь}хЬ(д,А) = Ь(д,СА)

Зафиксируем очевидные свойства разделенных грамматик и языков.

1. В разделенной грамматике О все языки Ь(С,(р) являются разделенными.

2. Любой разделенный язык является префиксным языком, в котором никакие два предложения х и у не связаны отношением х = у г для некоторого г ф е.

3. Если Ь = Ь\ х Ь2 и Ь\ — префиксный язык, то х\\Ь = Ь2 для любого х € Ь\.

4. В выводе (1) ^-правило, применяемое к х^Б^/З^, однозначно определяется терминалом а, расположенным в позиции \х,г \ + 1 каждой из цепочек Х,1+\, ... ,хп.

Лемма 1. Пусть Ь1х{Ь} = Ь2хЬ3, где Ь — терминал из Т, и 1.1. !. >. !.3 С 5]+. Пусть, кроме того, Ь1 — префиксный язык, а Ь3 — язык, содержащий более одного предложения. Тогда существует язык Ь'3 С 5]+, такой, что Ь3 = Ь'3х{Ь}.

Доказательство. Выберем предложение х Е Ь2. Так как е ^ L3, то все предложения из L3 имеют вид zb, и для завершения доказательства достаточно показать, что b L3. Предположим обратное: Ь Е L3. В этом случае L3 D {b,yb} для некоторого у ф е; и, следовательно, Li х {Ь} D {жЬ,жуЬ} и Li D {ж,ху}, т.е. язык Li не является префиксным.

Лемма 2. Пусть в разделенной грамматике G для тройки цепочек х, у, (р выполняются условиях ф е, у ф е, ху Е L(G,(p). Тогда существует цепочкаф, такая, что L(G,ip) = x\\L(G, (р).

Доказательство. Рассмотрим вывод (1) предложения жу (9? = xqDqPq ш ху = х„). Обозначим через к наименьший номер г, 0 ^ г ^ п, для которого цепочку x,i можно представить в виде хх\. Если к = п, то ф = у; в противном случае ф = x^D^fj),. Поскольку левый вывод любого предложения xz из L(G, (р) (как следует из свойства 4) имеет вид (р хф xz, то L(G, ф) = x\\L(G, (р).

Следствие. Если L — разделенный язык и ху Е L, где х ф е, у ф е, то множество х\\L — разделенный язык.

Лемма 3. Пусть G — разделенная грамматика и L — разделенный язык, в котором предложения z\ и Z2 начинаются разными терминалами. Пусть для тройки (р, у и L имеют место выводы (р =4>+ yz для всех z Е L. Тогда существует цепочка D/3, такая, что (р =4>+ yDfj =>+ yz для всех z Е L, причем L С L(G, Dfj).

Доказательство. Если у = е, то утверждение леммы справедливо при D/3 = (р. Пусть у ф е и z — некоторая цепочка из L. Рассмотрим вывод (1) предложения yz ((р = xqDqPq и yz = х„). В этом выводе на некотором этапе =$> Xk+iDk+ifik+i выполняются неравенства < |у|

и ^ |у|. Как следует из свойства 4, применяемое на этом этапе Dfc-правило зависит от сим-

волов цепочки у и не зависит от z. В частности, iCfc+iDfc+i/Jfc+i =4>+ yz\ и x^iD^^i/i^i =4>+ yz2, а поскольку первые символы предложений z 1 и Z2 различны, то |a;fc+i| ^ |у| и, следовательно, |iCfc+i| = |у|, у = Xk+i, т. е. утверждение леммы справедливо при D/3 = iPk+i- Лемма доказана.

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

3. Квазиканонические разделенные грамматики. Общие свойства различных подходов к определению канонических грамматик можно формализовать и исследовать в виде отдельного класса грамматик.

Квазиканонической разделенной грамматикой (quasicanonical separated grammar; QCS'-rpaM-матикой) называется разделенная грамматика G = {N. >1. / '. S). удовлетворяющая следующим условиям.

А1. Основной символ S не встречается в альтернативах правил вывода.

А2. VD ф Е Р существует вывод вида S =>* xD/3 =>* хф/3 =>* у.

A3. VA е N' множество Р(А) содержит, по крайней мере, два правила.

А4. VA Е N' язык L(G, А) нельзя представить как I. \ х {а}, где С S+ и а Е S.

Лемма 4. 1°. Пусть G — QCS-грамматика, в которой для тройки (р, L0 и В (где L0 — разделенный язык) выполняется равенство L(G, (р) = L0 х L(G, В). Тогда (р = г/А для некоторых г] и А.

2°. Пусть дополнительно (р = А. Тогда каждое А-правило грамматики G имеет вид А ^ араСа, причем L(G, араСа) = La х L(G, В), где Ьа = {х Е LQ: х = ах'}.

Доказательство. 1°. Как следует из условий А2 и A3, язык L(G, В) содержит более одного предложения, поэтому (р имеет хотя бы один нетерминал и, в частности, либо (р = (р'а, либо (р = г/А для некоторых (р', а, г/ и А. Допустим (р = (р'а. Тогда L(G,(p) = L0 х L(G,B), что эквивалентно L(G,(p') х {а} = Lq х L(G,B), и, как следует из леммы 1, L(G,B) = Lb х {а} для некоторого языка Ьв, а это противоречит условию А4. Таким образом, для цепочки (р возможен единственный вариант: (р = г]А.

2°. Если (р = А, то L(G,A) = LQ х L(G,B). Выберем произвольное А-правило А афа, для которого предыдущее равенство принимает вид L(G, афа) = La х L(G,B). Из первой части доказательства для тройки афа, La, В следует существование пары г]а, Са, такой, что афа = г/аСа, а значит г]а имеет вид ара, и выбранное А-правило есть А ^ араСа.

Лемма 5. Пусть L(G,cp) = L(G,ф), где G — QCS-грамматика, а ср и ф — различные цепочки. Тогда (риф можно представить как р^А^р, и р,- Л,.//., где Av и Аф — различные

нетерминалы, связанные одним из трех равенств: Ь(0,А^) = Ь(С,Аф), Ь(С,(р'А^) = Ь(С,Аф), Ь(0,А^) = Ь(С,ф' Аф) для некоторых непустых ср' и ф'.

Доказательство. Обозначим через р наибольший общий постфикс цепочек (риф. Тогда ср = р^Хр, ф = РфУ р, X ф У и Ь(0,р^Х) = Ь(С,рфУ) = Ь. Для символов X и У возможен один из четырех вариантов:

1) X € £ и У € т. е. Ь(С, р^а) = Ь(С, рфЬ) для некоторых аф Ь;

2) ХеЕиУе!, т.е. Ь(С,р^а) = Ь(С, РфАф) для некоторых а и Аф;

3) X € N и У € т. е. Ь(С, р^А^) = Ь(С,рфЬ) для некоторых и Ъ;

4) .V е- /V и V е- /V. т.о. Ь(С, р^А^р) = Ь(С, рфАф) для некоторых А^ ф Аф.

Вариант 1 возможен лишь при Ь = 0, что противоречит условию А2. Вариант 2 при рф = е противоречит условию А4, а при Рф ф е противоречит лемме 4 (часть 1°) для тройки р^а, Ь(С, рф) и Аф. Вариант 3 также противоречит условию А4 и лемме 4 (часть 1°). Рассмотрим единственный возможный вариант 4. При р^ = е и/или рф = е доказательство леммы очевидно. Пусть р^, ф е и рф ф е.

Зафиксируем предложение х € Ь и рассмотрим его выводы:

р^А^ =>+ у\А{р =>+ угхг = х, причем р.^ =>+ уь РфАф =>+ у2Аф =>+ = ж, причем =>+ у2. Как следует из свойства 3 разделенных языков:

уг\\Ь = у1\\1(0,рч>Ач>) = 1(0, Ау) и у2\\Ь = у2\\1(0, рфАф) = 1(0, Аф). Цепочки ?/1 и у2 являются префиксами предложения х, поэтому между ними возможно одно из трех соотношений: у1 = у2, у1 = у2уа или угуа = у2, где уа ф е.

Если ух = у2, то уг\\Ь = у2\\Ь, т.е. 1(0, А^) = 1(0,Аф).

Если у 1 = у2уа, то из леммы 2 (для тройки у2, у0, р^,) вытекает существование цепочки ср', такой, что

у2\\Ь{С,рч>Ач>) = (у2\\1(0,р^ х 1(0, А^) = 1(0,(р') х 1(0,Аф) = Цв^'А^).

Из сравнения двух выражений для у2\\Ь следует равенство Ь(С, Аф) = Ь(С, ср'А^).

Если у1?/о = у2, то (аналогично соотношению у\ = у2уа) Ь(С,Аф) = Ь(С,ф'Аф).

4. Канонические разделенные грамматики. Лемма 5 позволяет вполне естественно перейти к искомому каноническому представлению разделенных грамматик.

Канонической разделенной грамматикой (С5-грамматикой) называется (ЗС5-грамматика О, удовлетворяющая следующим условиям.

А5. 1(0, А) ф 1(0, В) для всех Аф В из Ж'.

А6. Ь(С, А) ф Ь0 х Ь(С, В) для всех Л. И е- /V' и для всех разделенных языков Ь0.

Приведенному определению не удовлетворяет (ЗС5-грамматика д, но удовлетворяет эквивалентная ей грамматика

5 ЬСА с А, Ь(д, Б) = {с, Ьа, ЬЬ] х Ь(д, А)

А -» а \ЬА \сС А, Щ,А) = {Ь, са, сЬ} х {а},

С -» а 1 ь, Щ,С) = {а,Ъ}.

Алгоритмическая разрешимость задачи приведения разделенной грамматики к каноническому виду доказана, например, в [3, 4].

Теорема 1. Если Ь(С,(р) = Ь(С,ф) для СБ-грамматики О, то (р = ф.

Доказательство. Допустим в С5-грамматике О для некоторых (р ф ф выполняется равенство Ь(С,<р) = Ь(С,ф). Тогда из леммы 5 следует, что в О нарушается либо условие А5, либо условие А6.

Теорема 2. Если О = (N,^2, Р, Б) — СБ-грамматика и А € -/V', то Ь(С,А) ф Ьх х Ь2, для любых разделенных языков 1.1. < С £+.

Доказательство. Допустим обратное: в некоторой С5-грамматике О существует нетерминал А € М', для которого выполняется равенство Ь(0, А) = Ь\ х Ь2. Для языка Ь2 возможен один из двух вариантов: либо Ь2 состоит из единственного предложения ха, либо Ь2 содержит не менее двух предложений. Первый случай можно исключить из рассмотрения, так как

Ь(С,А) = {ух: у € ¿1} х {а}, что противоречит условию А4. Во втором случае, не ограничивая общности, можно полагать, что язык Ь2 содержит предложения и гэ, которые начинаются различными символами. Выберем в Ь\ некоторое предложение у. Из леммы 3 (для тройки А, у, Ь2) вытекает существование цепочки В/3, где ¡3 € (-/V' и I!)*, такой, что А =>+ уВ/3 =>+ уг для всех г € Ь2, причем Ь2 С Ь(0, В/3).

Докажем равенство !. < = Ь(С,В(3). Допустим, что г € Ь(С,В(3). Из А =>+ уВ/3 следует утверждение уг € Ь(С,А). Из Ь(С,А) = 1.\ - !. < вытекает, что уг = у'г', где у' € 1а, г' € Ь2. Если у ф у', то {у,у'} С что противоречит свойству 2 префиксных языков. Поэтому у = у' и, следовательно, г = г', г € Ь2. Итак, Ь(С,А) = Ь\ х Ь(С,В(3). В зависимости от самого правого символа цепочки В/3 последнее равенство противоречит либо условию А4, либо условию А6.

5. Первый характеристический признак ('^'-грамматик. Этот признак позволяет для идентификации канонических разделенных грамматик использовать альтернативную формулировку условия А6, опирающуюся на одно структурное свойство нетерминалов.

Пусть О = (Ы, 1!, Р, Б) — разделенная грамматика и X — фиксированный символ из Ж' и Е. Обозначим через Р1Е(0, X) совокупность непустых подмножеств Ых С Ж', таких, что X ^ Ых, а все правила из Р(Ых) имеют вид А —> (рУ, где У = X либо У € Т^х - Заметим, что А4 эквивалентно условию аЩЕ, а) = 0 для всех а е Е". Будем рассматривать грамматики, удовлетворяющие условию

А6'. Ж)(С, А) = 0 для всех А е Ж'.

Теорема 3. Если (¿СБ-грамматика О удовлетворяет условиям А5 и А6', то О является С Б-грамматикой.

Доказательство. Предположим, что в (ЗС5-грамматике О, удовлетворяющей условиям теоремы, не выполняется условие А6, т.е. существуют несколько пар А^, Вдля которых Ь(0,Аг) = /;. х Ь(0,Вг), где /-л, /.', — разделенные языки. Покажем, что такое предположение противоречит условию А6'.

Обозначим через к(А) длину самого короткого предложения языка Ь(С,А). Из пар А^, И, выберем пару Ат, Вт с наименьшим значением к(Вг). Для этой пары определим непустое множество нетерминалов

ЖВт а= {Ае]У: Ь(в, А) = ЬАВт х Ь(в, Вт)},

и покажем, что ^Чвто € Р1Е(0, Вт).

Для некоторого А € Nвт выберем произвольное А-правило. Как следует из леммы 4 (часть 2) (для тройки А, ЬАвт и Вт), выбранное правило имеет вид А —у араСа, причем £(£?, араСа) — = Ьа х Ь(0,Вт), где Ьа — подмножество предложений из Еавш, начинающихся терминалом а. В языке Ь0 = Ь(С, ара) х Ь(С, Са) = Ьах Ь(С, Вт) выберем некоторое предложение х € Ь0, которое можно представить как х = = у2г2, где у\ € Ь(0,а,ра), у2 € Ьа. Из свойства 3 разделенных языков следует, что угЦЬо = Ь(0,Са) и у2\\Ьа = Ь(0,Вт). Цепочки у\ и у2 являются префиксами предложения х, поэтому между ними возможно одно из трех соотношений: у\ = у2, у\уо = у2 или У1 = У2У0, где уо ф е.

Если ух = у2, то у 1\\1а = у2\\1а, Ь(0, Са) = Ь(0, Вт) и, как следует из условия А5, Са = Вт.

Если щуо = у2, то 1(0,Са) = ш||Ьо = {у1\\1а)у.1(0,Вт) = Ь'а у.1(С, Вт), где Ь'а — некоторый разделенный язык, существующий в силу леммы 2, т.е. ('„ € и„, ■

Если у 1 = у2уа, то Ь(0,Вт) = у2\\Ь0 = Ь'1 х Ь(0,Са), где Е"а = у2\\Ь(0, ара) — разделенный язык, существующий в силу леммы 2, т.е. Ь,(Вт) > Ь,(Са), что противоречит выбору Вт.

Итак, для А € №вт произвольное А-правило имеет вид А ^ араСа, причем Са = Вт либо Са € №вт, что означает Вт € КБ(0,Вт).

6. Второй характеристический признак ( '^-грамматик. Этот признак позволяет для идентификации канонических разделенных грамматик использовать альтернативную формулировку условия А5. Следуя [5], введем на множестве нетерминалов отношение структурной эквивалентности.

Пусть О = [Ы, Е, Р, Б) — грамматика и /•-' — бинарное отношение на некотором подмножестве

нетерминалов Ы'. Обозначим символом ~ отношение эквивалентности, полученное из Е посред-

е

ством рефлексивного и транзитивного замыкания отношения Е и {(и, О): Е € Ж'}. Доопределим

отношение ~ на множество цепочек следующим образом: Е

«0^1«! ... Апап ~ «оВ\а,\ ... Впап ( Л, ~ И, для i = 1,..., п).

Е \ Е /

Отношение ~ будем называть отношением структурной эквивалентности и обозначать его Е

и, если ич Л ~ И следует, что для любого правила А ^ (р существует правило В ф, для которого

Е Е

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(р ~ ф. Отношение и будем называть тривиальным, если из А и В следует А = В. Известно, ЕЕ Е

что из А и В следует L(G,A) = L(G,B). Будем рассматривать грамматики, удовлетворяющие условию

А5'. Все отношения структурной эквивалентности на N' тривиальны.

Теорема 4. Если QCS-грамматика G удовлетворяет условиям А5' и А6, то G является CS-грамматикой.

Доказательство. Пусть G — (ЗС5-грамматика, удовлетворяющая условиям теоремы 4.

Обозначим через Е множество пар различных нетерминалов (А, В), для которых L(G,A) =

= L(G, В). Докажем, что Е = 0, что эквивалентно условию А5.

Предположим, что Е ф%, т. е. L(G, А) = L(G, В) для некоторых Аф В. Поскольку G — QCS-

грамматика, то любому Л-правилу А ^ a,r¡ можно взаимно однозначно сопоставить Б-правило

В ^ ар, причем L(G, ar¡) = L(G, ар).

Равенство L(G, ar¡) = L(G, ар) возможно либо при аг] = ар, либо при ат] ф ар. В первом случае

соотношение ат] и ар очевидно. Во втором случае из леммы 5 для цепочек ат] и ар следует, что Е

ат] = ar]iAipQ и ар = apiBipQ, причем для пары различных нетерминалов А\ и В i возможно одно из трех: либо L(G,Ai) = L(G,Bi), либо L(G,Ai) = L(G, ф'Вх), либо L(G^'Ai) = L(G,Bi). Второе и третье равенства противоречат условию А6, а из первого равенства следует: (Ai,Bi) G Е и L(G, ат]i) = L(G, api).

Равенство L(G,a,r¡i) = L(G,api) рассматривается аналогично, оно возможно либо при ат]i = = api, либо при ar]i = a,r¡2A2pi и api = ap2B2pi, где (А2,В2) (г I'. и L(G,a,r¡2) = L(G,ap2).

Генерация пар ar]i и api не может быть бесконечной, поскольку \r]i\, \r¡2\, ■ ■ ■ есть монотонно убывающая последовательность. На некотором п-м этапе будут получены представления цепочек аг] и ар в виде ar¡nAnpn_ i ... AtpQ и ar¡nBnpn_ i ... Вгра, причем {{Ап, Вп),..., (At, Si)} С E,

т. е. аг] и ар и и есть нетривиальное отношение структурной эквивалентности, что противоречит

Е Е

условию А5'.

7. Единственность ('^'-грамматик. В каждом классе эквивалентности разделенных грамматик существует ровно одна унифицированная каноническая грамматика. Это утверждение устанавливается в два приема: сначала доказывается, что эквивалентные С5-грамматики совпадают с точностью до переименования нетерминалов, а затем излагается метод унификации алфавита нетерминальных символов. Здесь и далее под переименованием понимается применение некоторого взаимно однозначного отображения.

Теорема 5. Пусть = {N1, £1, Р\, Б\) и С2 = {N2, £1, Р2, Б2) — эквивалентные СБ-грамматики, в которых Б\ ф Б2 и А € П Н2 Ь(0\,А) = Ь{02,А). Тогда = Н2, Д(СЬ 5!) = Д(С2,52) и Р1(Щ) = К(Щ).

Доказательство. Обозначим: Д1 = \ Щ и Д2 = Щ \ Выберем не встречающиеся

в Ст\ и Ст2 символы +, -Г- и Б.

Часть I. Построим грамматику О = {Н, £, Р, Б) следующим образом:

N ={Б}иШ1иШ2 = {5}и{51,52}и^иД2, £ = {+,-г}иЕь р = + Бъ, и Р(Б1) и РЦЩ) и

и Р(Б2) и ^(Д2). По построению для нетерминалов из Ж' справедливы равенства:

Ь(в, Бг) = ^1) и {+}, Ь(в, А) = Х,(СЬ А) для всех А е М[,

Ь{в,Б2) = Ь{в2,Б2) и {+}, Ь{в,В) = Ь{в2,В) для всех В е Д2. (2)

Часть II. Покажем, что — СБ- грамматика. Условия А1, А2 и АЗ вытекают из определения О, условие А4 следует из равенств (1). Условие А5 подтвержается следующими выкладками:

1(0,Б г) Ф Ь(С 1, Б2), А) ф 1(0, В) для всех различных А,В € Л^иД2,

Ь(в, Бг) ф С), Б2) ф Ь(в, С) для всех С е Л^иД2.

Остановимся на проверке условия А6. Соответствующие неравенства с участием 51 и Б2 следуют (для любых ¿о и А 6 ^ II Д2) из уникальности терминалов -г- и +:

¿>1) ф Ь()хЬ(0,Б2), Ь(С,Б2) Ф Ь0хЬ(О, Б\), Ь(0,Б^ф Ь0хЬ(О,Аг), Ь(в,А^ф Ь0хЬ(О,Б^, ¿=1,2.

Таким образом, проверка условия А6 сводится к доказательству неравенства Ь(С, А) ф Ь$хЬ(С, В) для всех Ь0 ъ А ф В ъз N1 I) Д2. Предположим обратное: Ь(С,А) = Ь0 х Ь(С,В) для некоторых Ьа и А ф В. Нетерминал А является символом алфавита /V,. / I или г = 2, поэтому Ь(Ог,А) = Ь0 х Ь(С,В), что противоречит теореме 2, так как О^ — С5-грамматика, а Ь0 и Ь(С,В) — разделенные языки (см. свойство 1 разделенных грамматик).

Часть III. Покажем

справедливость равенства -??(£?!, ) = Д(С2,52). Пусть аг] б 1,61). Из эквивалентности и С2 следует, что в 1{(02,Б2) существует цепочка ар, начинающаяся тем же терминалом а. По построению в грамматике О имеются правила 51 ^ аг] и 52 ^ ар, причем Ь(С, аг]) = Ь(С, ар), и, как следует из теоремы 1, ат] = ар.

Часть IV. Покажем, что выполняются равенства /V[ /V/, и Ь{С\,(р) = Ь(С2,(р) для любой цепочки ср € (N1 и Е)+. Рассмотрим

произвольное предложение ах из £(£?, 52) \ = £(£?2,52) и его вывод в грамматике О: Б2 =>с о,р =>д ах. Как следует из части III настоящего доказательства, цепочка р не содержит символы из Н2, а поскольку Р\ С Р, то в выводе предложения ах не участвуют нетерминалы Д2. Так как грамматика О удовлетворяет условию А2, то Д2 = 0. Аналогично доказывается Д1 = 0. Из = /V.', следует, что Ь(С\, А) = Ь(С2,А) для всех и поэтому

1(0!,(р) = 1(О1,х0А1х1.. ,Акхк) = {х0}х1(О1,А1)х---х1(О1,Ак)х{хк}

= {хо}х1(02, А1)х---х1(02, Ак)х{хк} = 1(02,(р).

Часть V. Покажем, что Рг(М[) = Р2(Ы2). Предположим, что в Ог и С2 существуют правила А ^ ат] и А ^ ар, в которых ат] ф ар, но Ь(0\,аг]) = Ь(02,а,р). Как доказано в части IV Ь(0\,аг]) = Ь(02,а,7]), т.е. в С5-грамматике С2 существуют различные цепочки ат] и ар, для которых Ь(02,а,7]) = Ь(02,а,р), что противоречит теореме 1.

Следствие. Пусть = (N1, Е, Р\, Б) и ('•■> (Ж2,Е,Р2,5) две эквивалентные СБ-грамматики, в которых I) е- Л;1 Г) < > Ь(С\, Б) = Ь(С2, Б). Тогда Л;1 и 1\

Пусть = (Ж, Е, Р, Б) — разделенная грамматика, удовлетворяющая условию А2, и Г — символ, не встречающийся в £?ях. Сопоставим грамматике £?ях эквивалентную ей унифицированную грамматику £?ях = {N,11, Р, Гф), в которой каждый нетерминал Б переименован в Г-^, где /) — специально построенное множество, исполняющее роль индекса при Г.

Для вычисления индексов I) используется ориентированный граф {-/V, Ш), помеченные дуги которого порождаются правилами грамматики £?ях:

[Б, В)ап е IV О (о арВг) б Р к т = \apB\J;

метка а,т определяется первым символом альтернативы 1)-правила и позицией нетерминала В в этой альтернативе. Переименования нетерминалов в грамматике £?ях порождают графы, изоморфные (Ж, Ш), причем в этих графах сохраняется разметка ребер. Смежность вершин и разметка ребер в графах, изоморфных (Н, Ш), однозначно определяют позиции нетерминалов в правилах вывода, а также задают группы позиций, отвечающих каждому нетерминалу.

В графе (Н, Ш) для каждого нетерминала Б существует путь от вершины Б к вершине В. Последовательность меток, расположенных на дугах этого пути, образует 1)-фразу; длина 1)-фразы измеряется количеством дуг. По определению индекс Б есть совокупность всех 1)-фраз, длина которых не превосходит число тах{ад(1)'): Б' € -/V} + 1, где «;(!)') — минимальная длина I)'-фраз. В случае £?ах = д (см. п. 6) унифицированная

грамматика £?ах получается так:

N — {5, А, С}; IV — {(5, С%2, (Б, А)С2, (Б, (А, А)ь2, (А, С)С2, (А, А)Сз};

= О^ад(А) = 1, ад(С) = 1; тах{0,1,1}+ 1 = 2; 5 = 0, А = {Ь3,с2,Ь3Ь2,Ь3с3,с2Ь2,С2С3}, С = {Ь2,Ь3С2,С2С2};

(■П:<- Гф ^Г Ы-!-,■!-. Ы-сГ-Г^. I-^ а Ь. __

Множество индексов N = (I): I) € N1 позволяет построить следующий граф изо-

морфный {Ы, ЦТ):

Поэтому СЭ-грамматики эквивалентны тогда и только тогда, когда они преобразуются в одну и ту же унифицированную грамматику О.

8. Заключительные замечания. В связи с теоремой 1 возникает вопрос о существовании разделенных грамматик, для которых из Ь{С,(р) 5 Е(0,ф) следует (р ф. Далее, в формулировках теорем 1 и 4 условие А6 может быть ослаблено, а именно, достаточно предположить, что Ьа является производным языком заданной (ЗС5-грамматики. И наконец, как следует из теорем 3 и 4, наиболее сложные для проверки условия А5 и А6 можно изменять по отдельности, но не одновременно (см. грамматику д); вопрос о дополнительном условии, гарантирующем совместно с А5' и А6' каноничность (ЗС5-грамматик, остается открытым.

1. Coureelle В. Une forme eanonique pour les grammaires simples deterministes // RAIRO — Theoretical Informatics and Applications. 1974. 8.R1. P. 19-36.

2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т. 1. М.: Мир, 1978.

3.Серебряков В. А., Соловьев С.Ю. Задача совместимости свойств формальных грамматик // Информационные процессы. 2012. 12. № 4. С. 408-437.

4. Bastien С., Czyzowicz J., Fraczak W., RytterW. Prime normal form and equivalence of simple grammars // Implementation and Application of Automata. Lecture Notes in Computer Science. Vol. 3845. Berlin: Springer, 2006. P. 78-89.

5. Paull .M. ('.. Unger S. H. Structural equivalence of context-free grammars // J. Computer and System

&

СПИСОК ЛИТЕРАТУРЫ

Sci. 1968. 2. P. 427-463.

Поступила в редакцию 16.09.15

SINGULARITIES OF CANONICAL SEPARATED GRAMMARS Soloviev S. Y.

Class canonical separated grammars that generate the same language as the general separated grammar are considered. We present the basic properties and two criterion of canonical grammars. We propose a method of nonterminals unification and prove the uniqueness of the canonical representation separated grammar.

Keywords: separated grammars, uniqueness.

i Надоели баннеры? Вы всегда можете отключить рекламу.