Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Форм_грамм1.doc
Скачиваний:
3
Добавлен:
11.11.2018
Размер:
78.85 Кб
Скачать

1(Алгебра, языки, программирование) а.Гладкий

п рое кипе Г) Ь на и. Образ цепочки при проектирова­нии также называется се проекцией. Проекцию це­почки (о и языка /- на словарь 11 мы будем обозначать соответственно Прим и 11рц1.

Бели {(о} — язык, состоящий из одной цепочки и, то мы будем вместо 1{ш], {ш}1, {о}* и {(1}}+ писать соответ­ственно ^.(0, СО/-, (О* II (О^

Пример. Если V =={0,1}, ^—яз|,!к, состоящий из всевозможных двоичных записей целых положительных чисел (т. е. цепочек, начинающихся символом 1), и ^— язык, состоящий из всевозможных двоичных записей не­четных положительных чисел (т. е. цепочек, начинаю­щихся и оканчивающихся символом 1), то /- == \У*, Ь,= {1} и \У\, 1М= 1.1 = ^1-{1}, ^=Щ Л^ИГ1'”; ^==1: (о\/.=1Л, если (о начинается •единице'!"!; м\Ь == 0, если (о начинается нулем; /-|/й== ==/^ЩЛ}, если о” оканчивается единицей; ^/(о == 0 если (г оканчивается нулем; 5(1.1; 0, 1|^-|, Ц ==/-.

Пусть ^|, .... ^( - абстрактные символы и 61, ... . .. ,Я,, языки (точнее, символы, обозначающие язы­ки). Выражение, согшилепнос из ^|, ..., ^;,, 51, ... .... /) I, г помощью такси объединения и умножения *), соответсгвенно знакон объединения, умножения и итера­ции, называется многочленом, соответственно ре­гулярным выражением от ^|, ...,!;;; с коэф­фициентами 5), ..., 5р. Если интерпретировать .^1, ..., ^ как переменные, пробегающие какие-либо множества языков, то многочлен (регулярное выраже­ние) становится функцией от этих переменных; значе­ние чгон функции, получаемое при подстановке на место переменных ^], .... ^, конкретных языков /-|, .. . ,Ь^, .есть также некогорын язык; мы будем говорить, что этот язык представляется (или задается) данным многочленом (регулярным выражением) при ^^==^^, ... .. ., ^;( == ^у(. Например, язык, состоянии"! из всевозмож­ных цепочек в словаре [а, Ь], содержащих вхождение фиксированной цепочки м, задается регулярным выра­жением Ф(^)= {а,&}*б{о,й}* при ^=={ю}.

Многочлен (регулярное выражение), не содержащий (не содержащее) неременных, называется з а м к н у-

*) Знаком умножении можни считать пробел между буквами,

25

ГРАММАТИКИ

1.21

тым; замкнутый многочлен (регулярное выражение) представляет единственный язык.

Два многочлена (регулярных выражения) от пере­менных ^1, ..., |д тождественны (или тожде­ственно равны), если они отвечают одной и той же функции, т. е. при любой подстановке языков вместо переменных представляют один и тот же язык.

В силу упомянутого выше дистрибутивного закона любой многочлен от ^, .... ^;, тождественно равен не-.-?

которому многочлену вида \^]а.ц ... а/г где а/,, ...

1=1

.,., а/г— неременные или коэффициенты.

§ 1.2. Грамматики

В самом широком смысле формальными граммати­ками, или просто грамматиками, называют любые “ав­томатические устройства” (т. с. исчисления или алго­ритмы), позволяющие “задавать” языки. При этом “задание” может осуществляться по-разному: оно озна­чает либо возможность для каждой цепочки данного языка подобрать такой режим работы устройства, что­бы к концу работы получить (“породить”) эту цепоч­ку (причем, разумеется, чн одна цепочка, не принадле­жащая языку, не должна “порождаться”), либо возмож­ность “перечислить” язык, т. е. организовать работу устройства так, чтобы оно выдавало цепочки языка одну за другой и могло бы выдать любую из них, ра­ботая достаточно долго, либо, наконец, возможность для произвольной цепочки (в соответствующем словаре) получить от устройства ответ на вопрос, принадлежит ли эта цепочка языку. Из трех указанных подходов мы выберем первый. Как станет нам ясно впоследствии (а читателю, достаточно хорошо знающему теорию алго­ритмов, должно быть ясно уже сейчас), это не сужает класса описываемых языков—любой язык, допускаю­щий задание первым способом, допускает также зада­ние вторым или третьим. В то же время именно такой подход лучше всего моделирует ситуацию, имеющую место при пользовании языком (естественным или искусственным) *) --основная задача там состоит в по­рождении предложения. обладающего заданным смыс­лом. Правда, эта ситуация моделируется далеко не в полной мере — в модели происходит порождение не предложений с заданным смыслом, а любых правиль­ных предложений (понятие смысла в этой модели вообще не присутствует в сколько-нибудь отчетливой форме). Тем не менее такая модель позволяет значи­тельно приблизиться к пониманию того, как смысл преобразуется в текст, поскольку преобразования, с по­мощью которых в ней происходит процесс порождения правильного предложения, могут рассматриваться как прообраз — хотя и достаточно грубый — тех преобразо­ваний, с помощью которых осуществляется переход от смысла к тексту.

Итак, мы останавливаемся на понимании грамматики , как “устройства для порождения цепочек” и впредь бу- I дом говорц-п^.и-.&но.рождающих грамматиках”. Й6 по"-""-" рождение цепочек может"быть организовано"'различны-мп гногобамп. И ч.югносгц, возможны такие способы, при которых псе возникающие в процессе порождения промежуточные объекты будут тоже цепочками, и та­кие, при которых эти объекты могут иметь иную приро­ду. Нас здесь будут интересовать исключительно спо­собы первого тина **); таких способов тоже, как легко понять, может быть много, и нам придется выбрать ка-кон-го один (или в крайнем случае несколько). Мы вы­берем способ, предложенный Н. Хомским (впервые в [С1ю1пя1<у 1956, 1957]) и не уступающий по силе, как мы упнднм в § 1.4, никакому другому возможному эффек­тивному способу*1""); в то же время он обладает тем

*) В этой и предыдущей фразах слово “язык” употреблено в разных значениях (см. пвсдение, стр. 14—15).

**) Для более точного моделирования перехода от смысла к тексту более адекватны как рад т.чкпе грамматики. к которых про межуточные объекты имеют более сложную природу, например ян ляются деревьями (см. [Гладкий—Мельчук 1971]). Однако теория таких грамматик еще недостаточно разработана; во всяком слу­чае, — это для нас здесь наиболее важно — теория “древесных” грам матик не может не опираться существенным образом на теорик;

проще устроенных “ценочечныч” грамматик, которые и являются предметом настоящей книги.

***) Разумеется, это утверждение не носит характера математи­ческой теоремы. Его статус будет разъяснен в конце § 1.4.

27

ГРАММАТИКИ

” 1.г1

преимуществом, что по крайней мере для наиболее важных частных случаев позволяет сопоставлять по­рождаемым предложениям весьма естественные описа­ния их структуры (см. ниже, § 3.1). Еще одно весьма важное достоинство данного способа состоит в том, что он хорошо вписывается в некоторую более общую систе­му понятий математической логики, теории алгоритмов и теории автоматов *}_„__.„„,.._„_.-.„„.„..,.„...„. „,,„,„-.__^ -У Итак, мы"пёрёходим к определению порождающих ^ грамматик в смысле Н. ХомскогО;гясгтех~ттерг-тюкя-"й<Г^ будут введены" в' ~ра сем отретгиёдругие типы грамма­тик,—а по большей части и после этого (когда невоз­можно недоразумение) — мы будем в качестве синони­ма для выражения “порождающая грамматика” упо­треблять просто слово “гра^^атййЯА-”——"-“""* -"•—.”—,,,.„„<...- "--у

"(П о р о ж да ю"цГ'а"яТ грамматика — это упоря- ^ доченная четверка Г = (V, V, I, К}, где: 1) V и 2) УУнепересекающиеся непустые конечные множества;

3) /—некоторый элемент №"; 4) К— конечное множест­во цепочек вида (р —- ^, где (р и гр — различные цепочки в словаре '/ Ц V и —” —символ, не входящий в V и Ц7. Множества V и называются соответственно основ­ным и вспомогательным словарями (ал­фавитами) грамматики Г, а их элементы—соответ­ственно основными и вспомогательными символам и Г **); / называется и а ч а л ь и ы м с и м-в о л о м Г, К -- с х е м о и Г и элементы /? — правил а-м и Г. Цепочки (р и ^ называются соответственно левой и правой частями правила (р—”ф. Объеди­нение \/\]^ мы будем иногда называть полным словарем грамматики Г.

Пусть г = (р —> •^—правило грамматики Г и 1|*Ф*12—вхождение гр в цепочку со = ^1Ср|г в словаре V [] УУ. В этом случае мы будем говорить, что цепочка

*) Заметим, что эта система понятии возникла еще до иссле­дований Н. Хомского, и то обстоятельство, что его концепция сразу нашла готовую формальную базу, очень сильно способствовало ус­пешному развитию этой концепции. Таким образом, и здесь теория опередила потребности приложений, как бывает чаще всего, вопреки распространенному среди “широкой публики” ходячему мнению.

**) Вместо слов “основной” и “вспомогательный” нередко упо­требляются соответственно слова терминальный и нетерми­нальный.

ОСНОВНЫЕ ПОНЯТИЯ

ц == ^ф^ " о л У ч а етс л из ш применением правила г к вхождению ^1'кр”^ цепочки гр. Если цепочка х\ полу­чается из цепочки ю применением какого-либо правила Г, будем говорить, что >] непосредственно выво­дима из и) и Г, и писать (и ^= ]Л] или просто (в (= г].

Последовательность цепочек О == (й)в, й>|, .. ., о)п) (/г ^ 1) называется выводом (о„ из (Оц в грамматике Г, если для каждого I, 1 ^ г ^ п, имеет место й),-11= со;. Число п называется длиной вывода О. Если существует вывод т] из со в Г, то мы будем гово­рить, что т) выводима из со в Г, и писать юг-^т) или

со I— п.

Вывод (о)ц, о)|, ..., йп) называется полным, если он == / и о)„ — цепочка в словаре V.

Если О == (мо, (1)|, .... (Он) — вывод в грамматике Г и для некоторого ('== I, ..., ч цепочка юг получается из (о,_1 применением правила гр -*• ^ к вхождению ^, •”(()•”(), цепочки 1р в (1),-1, то мы будем говорить, что это правило применяется на 1-м шаге вывода О к вхождению й;''-^*!)! и что данное вхождение (рва заменяется на /-м шаге вывода О. Размечен-и ы м в ы в о д о м. соответствующим выводу О, мы бу­дем называй, последовательность^, ш\, ..., (о^_,, соЛ где й^ (/==(), ..., п— 1) — вхождение, заменяемое на 1-м шаге вывода О. Одному выводу может, вообще го­воря, соответствовать много размеченных выводов (см. упражнение 1.9).

Множество цепочек в основном словаре грамматики Г, выводимых ш ее начального символа (иначе—мно­жество последних цепочек всевозможных полных выво­дов в Г), называется языком, порождаемым грамма т и к о и Г, и обозначается ^.(Г).

Из сформулированных определении видно, что суще­ственным свойством процесса работы порождающей грамматики является его недстсрмннироваппость: если оборвать вывод па каком-либо шаге, то продолжение, вообще говоря, не восстанавливается однозначно по оставшейся части и может быть выполнено разными способами. 7'аким образом, грамматика—это исчисле­ние, т. е. разрешение производить некоторые операции [Марков 1954, стр. 203] — в данном случае подстановки

• цепочки одних подцепочек вместо других (а не алго­ритм, т. е. не предписание производить какие-то опера­ции).

Пример. Пусть Г= ({а, Ь, с], [А, В, С, О}, Л. [А-^ВСА, ВСВ-^0, ВС-^Ьс, ОС-* а, сА-^с, аА->а}}. Пример полного вывода в Г: (Л, ВСА, ВСВСА, ВСВСВСА, ВСОСА, ВСОСВСА, ВСОСЬсА, ВСаЬсА, ЬсаЬсА, ЬсаЬс}. Соответствующий оазмеченный вывод (в данном случае единственный): (-”Л -х-, ВС * А ”, ВСВС * А *, ВС -:. ВСВ * СА, ВСОС * А *, ВСОС * ВС -х- Л, ВС*ОС*ЬсА, “ВС^аЬсА, ЬсаЬ*сА*, ЬсаЬс). Легко видеть, что ^-(Г) == {а, ос}*.

Грамматика Г={У, И7, /, /?) называется граммати­кой составляющих, или НС-грамматикой*), если каждое ее правило имеет вид Щ^-* 11652, где 11, 12 — произвольные цепочки в словаре V О ^У, А е. ^ и б—произвольная непустая цепочка в V [] Ц7.

Правила вида ^Л^д —” ^б^, где у, 52, Л и И имеют указанный только что смысл, иногда называют НС-пра-в и лам и; цепочка ^, цепочка 1г и пара цепочек (^1, §2) называются соответственно левым контекстом, правым контекстом и контекстом НС-прави­ла ^Л^—^^б^г- При применении НС-правила факти­чески заменяется только одно вхождение символа Л, но возможность замены зависит от наличия нужного кон­текста. Если ^1 == и == А, то правило называется бес­контекстным (или контекстно-свободным), сокращенно Б-правнлом (или КС-правилом).

НС-грамматика называется бесконтекстной (или контекстно-свободной), сокращенно Б-гр а м м а т и ко и (или КС-грамматикой), если все ее правила бесконтекстные.

(Б-) грамматика называется автоматной, сокра­щенно А-гр а м м а т и к о и **), если каждое ее правило

•) Вместо “грамматика составляющих” часто говорят “грамма­тика непосредственно (или непосредственных) составляющих”; от­сюда и сокращение “НС-гоамматика”. Мы опускаем слово “непосред­ственно”, так как никаких других составляющих не бывает (ср. {Гладкий—Мельчук 1969], стр. 185), но сохраняем сокращение, став-•цм уже общеупотребительным.

*•) Иногда используется термин “грамматика с конечным числом “(стоянии”, по нашему мнению, неудачный (см. [Гладкий—Мельчук

имеег вид А -” аВ или Л-* а, где Л, 5—вспомогатель­ные символы и а - основной символ.

Я'ыки, порождаемые ПС-, Б- и А-грамматпками, на­зываются соотвстсгвсчио НС-, Б- и Л-языками.

Классы произвольных грамматик, НС-, Б- и А-грам-матик мы будем иногда обозначать соответственно че­рез V (так же мы часто обозначаем конкретные грамма­тики, однако эта омонимия всегда устраняется контек­стом), НС, Б и А. Кроме того, для произвольного класса грамматик Т через Э' (У} будет обозначаться класс языков, порождаемых грамматиками класса °Г'. Приме­ры НС-, Б- и Л-грамматик будут приведены в § 1.3.

Введем еще некоторые понятия и отметим несколь­ко полезных для дальнейшего простых фактов.

Правило <р-* ф грамматики Г называется заключи­тельным, если ^'т^Л и никакой символ, входящий в \\-. не может входить в левую часть какого-либо правила Г.

Не р е с т р о и к о и вывода О == (о)о, (01, .. ., йп) в грамматике Г мы будем называть (вообще говоря. много тачную) операцию, сопоставляющую выводу О какой-либо другой вывод цепочки о)„ из й)о в Г, в кото­ром применяются в точности те же правила, что и в О, но и другом порядке.

Лемма 1.1. Всякий вывод в произвольной грамма­тике можно перестроить так, чтобы ни одно заключи­тельное правило не применялось раньше какого-либо незаключительного. Доказательство очевидно

Пусть (о)д, ю,,

>,_,, м„), где

"“-г "п)' 1^ ", == ё,-* <Р, * ^ (О ^ I “< “), — размеченный вывод в некоторой грамма­тике, ч чи'и> нраннло, применяемое на 1-м шаге (1==1, ...,“), есп. (|),-| — \\1, .1. Тогда для каждого I" == 1, .... /I — 1 имеет место равенство ^фгг); = == 1(_11|);-1Г1| 1; при этом выделенное вхождение ф; мо­жет находиться либо целиком левее выделенного вхож­дения гр,-1, либо целиком прайсе, либо пересекаться с ним. В этих случаях мы будем говорить соответственно, что 1+1-ч 1иаг дачного размеченного вывода проис-

1%9]. стр. 184) Лучше всего было бы, пожалуй, говорить “конечно-автоматная граммагнка”. поскольку Л-грпмматики теС|Ю связаны с к о и с ч и 1.1 м и автоматами (см. ниже, § 51), но мы "е будем этого делать, чтобы не увеличивать и без того слишком большое чш.ш терминологических вариантов

х-чдит левее 1-го, происходит правее 1-го, з а-ц е п л е н с г-м.

Назовем размеченный вывод упорядоченным, если никакой следующий шаг не происходит в нем левее предыдущего. Вывод, становящийся при подходящей раз­метке упорядоченным, назовем упорядочиваемым.

Лемма 1.2. Всякий вывод в произвольной гралма-ти^ке можно перестроить в упорядочиваемый.

Доказательство. Пусть О' ==(®о> • • •, ш' _„ м ), где ©^ = ^ * ф, * т^. (О < г < га), — неупорядоченный раз­меченный вывод в грамматике V и <|)== <„ (Л') — наи­меньшее из чисел :', для которых I -\- 1-й шаг в О' про­исходит левее 1-го. Очевидно, Ц ,|^?|Ё.ф.|. Пусть

I "1о"1 \ " | -<о 'о 1 -

/'„ — наименьшее число, обладающее тем свойством, что для каждого /', удовлетворяющего условию /о ^ / ^ <о,

выполняется /—/0./0+1-

неравенство

&,. (р. . Для каждого

•о *0 1

г-о имеем ^_,(р,_|п/_,

... - ... 1^-Г

Преобразуем О' следующим образом: шаги до /о—1-го включительно оставим без изменения, затем в полученной таким образом цепочке ^. ф, ^/_|ф. _,11. _, применим к вы­деленному вхождению ф, правило, применявшееся в /У на 1'о+1-м шаге, затем будем производичь все за­мены, как на шагах О' от /о-го до (ц-го включительно,— после чего, очевидно, нолучигся цепочка ^(Ф,^, — и. Ни конец, преобразуем эту ценоч1\у в и”п, как в О'. Ясно, что такое преобразование дает новый размеченный вы­вод О" в Г, и если он не упорядочен, то 1о(0") >1'о(0'). Повторяя это преобразование нужное число раз, получим упорядоченный размеченный вывод.

Два вывода в грамматике Г назовем равносиль­ным и, если их первые и последние цепочки соответ­ственно совпадают.

Вывод, в котором никакая цепочка не встречается бо­лее одного раза, назовем бесповторным.

Лемма 1.3. Для произвольного вывода в любой грамматике существует равносильный ему бесповторный вмвоб, который можно получить из исходного выбрасы­ванием некоторых цепочек. Доказательство очевидно.

Грамматики Г и Г' называются эквивалентны-м ,'., если ^Г) = 1{\"}.