Файл: Алферова З.В. Теория алгоритмов учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.06.2024

Просмотров: 109

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

тельного предложения, вопросительного или отрицательного, или из активной конструкции, пассивной).

2. НС-грамматика строит предложения с точно определенным порядком слов. В синтаксической структуре, определяемой НСграмматиками, не расчленены два совершенно различных по своей природе, хотя и связанных между собой отношения: синтаксическое подчинение и линейное взаиморасположение.

Порождаемому предложению сопоставляется синтаксическая структура в форме упорядоченного дерева, т. е. дерева, где между узлами, кроме отношения подчинения, задаваемого самим деревом, имеется еще и отношение линейного порядка (правее — левее).

Таким образом, порождающие грамматики имеют дело только с синтаксисом языка, т. е. с законами построения правильных сло­ воформ и предложений.

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

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

Рассмотрим класс грамматик, состоящих из двух компонент:

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

правилами вида q>Aty—vcptoij}, где А — единичный символ,

со — не­

пустая цепочка;

 

 

2. Из Т — компоненты, представленной правилами вида

ерь

....,

Ф п — г д е п > 1, cpj, фг, . . . , ф п , ф представляют собой не

цепочки

символов, а структурные деревья — С-маркеры цепочек.

 

 

Такие грамматики будем называть трансформационными

или

Т-грамматиками.

 

 

Множество правил трансформационной грамматики удовлетво­ ряет следующим условиям. Прежде всего имеется грамматика НС, порождающая конечное число С-терминальных цепочек, с каждой из которых мы можем ассоциировать размеченное дерево, С-мар- кер, представляющее ее структуру составляющих. Затем мы добав­

ляем

к грамматике

множество операций, называемых грамматиче­

скими

трансформациями, каждая из которых отображает набор п

С-маркеров ( п ^ 1 )

в новый С-маркер.

Среди трансформаций различают обязательные, которые долж­ ны применяться к любому выводу, и факультативные, применяемые в соответствии с конкретными условиями.

Цепочка, полученная в результате применения всех обязатель­ ных и в случае необходимости некоторых факультативных транс­ формаций, называется Т-терминальной цепочкой.

Т-терминальная цепочка, полученная в результате применения только обязательных трансформаций, называется ядерной цепоч­ кой. Если язык содержит только ядерные цепочки, то эти цепочки

116


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

Трансформации, применимые к одному С-маркеру, будем назы­

вать сингулярными

трансформациями. Трансформации, применимые

к паре (или более)

С-маркеров, будем называть обобщенными тран­

сформациями.

 

Сингулярные трансформации часто сводятся к простым пере­ становкам элементов исходной цепочик (С-маркера), к добавлению константных цепочек в заданное место или к устранению некото­ рых элементов исходной цепочки. Сингулярные трансформации яв­ ляются элементарными трансформациями.

Обобщенные трансформации основываются на элементарных

трансформациях,

которые подставляют трансформированный

вари­

ант второй

(га-й)

компоненты пары исходных терминальных

цепо­

чек вместо

некоторого элемента первой

(п i) компоненты

пары.

Так, например, если трансформация

заменяет символ а

неко­

торого структурного дерева оч на структурное дерево сг2, то С-мар- кер результирующей цепочки есть' С-маркер cri, где а заменен С-маркером tf2.

Другим видом обобщенной трансформации может быть транс­ формация присоединения к одному С г маркеру другого С2 -маркера.

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

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

Т-грамматика — это упорядоченная семерка:

 

 

 

 

Т =

{VTVTTCJSTPT^),

 

 

 

где VT

— множество

всех синтаксических и

терминальных симво­

 

лов, к которым возможно применять трансформацию;

У£—множество

символов, образующих

Т-терминальные це­

 

почки;

 

 

 

 

 

С т

— множество

С-маркеров,

представленных в соответствие

 

всем Т-терминальным цепочкам из

V^;

 

 

5 Т

— нетерминальный символ, подчиняющий

общий

С-маркер

Р

вывода Т-грамматики;

 

 

 

 

—совокупность правил вывода или НС-компонента

Т-грам­

 

матики, порождающая Т-терминальную цепочку, к кото­

 

рой применима грамматическая трансформация;

Т

—совокупность правил

грамматической

трансформации,

применимая к элементам из С т множества;

117


т

—совокупность

заданных

соотношений на

множестве

 

1/т U С т , определяющая

связь между

структурным

опи­

 

санием (С-маркером) и Т-терминальной цепочкой из

V\.

Теперь можно определить понятие грамматической

трансформа­

ции следующим образом.

 

 

 

 

"*

 

 

Пусть Ct есть С-маркер некоторой

Т-терминальной цепочки t,

тде t^VT,

С г

е С т . И пусть t

имеет своими непосредственными

со­

ставляющими

терминалы

tit

...,

tn,

каждый

из которых связан

с некоторым узлом С-маркера

Ct помеченным символом ф,. В таком

•случае говорят, что цепочка t

может быть проанализирована

отно­

сительно Ct

как (tit ..., tn,

Ф1, • • •, Фи).

 

Цепочка

t с С-маркером

Ct

входит в область применения

транс­

формации Т, если t может быть проанализирована относительно Ct

как (tu ...,

tn, фь . . . ,

ф п

) .

 

 

 

В этом

случае (tx,

...,

tn)

есть собственный анализ

относитель­

но < С < Т > , а (фь . . . ,

ф и

) — структурный

индекс.

собственного

Отсюда

Т-трансформация

применима

к элементам

анализа. Действие трансформации при этом заключается в пере­ становке или выбрасывании некоторых элементов собственного анализа t, в замене их на некоторые другие, в постановке на задан­ ное место некоторых постоянных цепочек.

Структурный индекс (ф1, ц>п) определяет возможность / — цепочки, т. е. разложения Т-терминальных цепочек на элементы соб­ ственного анализа, которые конкретно задают область применения трансформации.

Значение Т-грамматики состоит в том, что она позволяет ре­ шить проблему анализа структур различной сложности и выступает как объяснительная теория грамматик вообще.

Как мы уже знаем, порождающие грамматики рассматривают­ ся в рамках строго формализованной теории. Что же касается Т-грамматик, то здесь подобный уровень формализации пока не достигнут. Предлагавшиеся до сих пор трансформационные прави­ ла не сформулированы в терминах одной простой операции как пра­ вила порождающих грамматик с их операцией подстановки. Зада­ ча формализации трансформаций является весьма актуальной.

2.6. Категориальная грамматика

Рассмотрим один

из классов, распознающих грамматик-катего­

риальные грамматики

(К-грамматики).

Понятие К-грамматики было введено Бар-Хиллелом в 1960 г.

•с целью построения механической процедуры синтаксического ана­

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

Сущность К-грамматик состоит в том, что для реализации син-

118


таксического кода все синтаксические классы делятся на два типа: элементарные синтаксические классы и операторы.

Например, имеются элементарные синтаксические классы 5И м (существительное в именит, падеже) и ПРЕДЛ — (предложение) . Тогда синтаксический класс, присоединяемый к 5И м справа и даю­ щий предложение, есть оператор, действующий на 5 И М справа и пе­

реводящий ОиМ в П Р Е Д Л . Такой оператор

обозначается

[S„M \ П Р Е Д Л ] , или { 5 И М \

П Р Е Д Л } .

 

Теперь перейдем к определению

К-грамматики.

К-грамматикой называется упорядоченная четверка

к =

<т, н,

I,

я>,

где Т — конечное множество символов, называемое терминальным или основным словарем (словарь словоформ);

Я— конечный набор элементарных категорий (ЭК), из кото­ рых строятся категории в Я следующим образом:

 

1)

всякая ЭК есть категория в Я;

 

 

 

 

 

 

 

 

 

2)

если

ф и г|) — категории

в

Я,

то

слова

{ф \ г р }

 

и-

 

{ф/Ч1} — категории в Я.

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись

{фХ'ф} читается как «ф под -ф», а запись {ф/^}

-

 

как «ф над \j)»;

 

 

 

 

 

 

 

 

 

 

 

 

/ — «отмеченная», или «главная»,

категория.

Это

 

конечный1

 

символ

е Я , роль которого в некотором смысле

противопо­

 

ложна роли начального символа S в порождающей грам­

 

матике. Из

S развертывается

порождающая

цепочка,

а

 

к / свертывается распознаваемая цепочка;

 

 

 

 

 

 

R — конечное множество синтаксических

правил

грамматики.

 

 

Каждому

основному

символу из

Т множество

R ставит

 

в соответствие конечное число категорий. Содержательно

 

эти правила можно представлять себе как задание в сло­

 

варе при словах их синтаксических

классов

(нескольких,

 

в случае омонимии: течь — существительное или глагол).

 

Таким образом, элементы словарей Т, Я, / представляют соот­

ветственно

словоформы, элементарные

категории,

отмеченные

ка­

тегории,

а цепочки

R — синтаксические

правила

грамматики

К.

 

 

Укажем,

как

работает

такая

грамматика, введя еще

одно

по­

нятие: сокращение цепочек

категории.

 

 

 

 

 

 

 

 

 

Под непосредственным сокращением понимается одна из двух

операций:

 

 

 

 

цепочки {ф/ф}1р

 

 

 

 

 

 

 

либо

некоторое

вхождение

заменяется

на ф>

(правое

сокращение),

 

 

 

 

 

 

 

 

 

 

 

 

либо

некоторое

вхождение цепочки

ф { ф \ i p } заменяется

на

Ф

(левое сокращение).

 

 

 

 

 

 

 

 

 

 

 

 

Категория {ф/г^} приписывается

такой

цепочке, которая,

 

на­

ходясь слева от цепочки с категорией г|з, образует с нею

цепочку^

имеющую в целом категорию ф:

 

 

 

 

 

 

 

 

 

 

 

9

{?/<!>} <|>.

119