Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLTA_shpory2.doc
Скачиваний:
102
Добавлен:
23.12.2018
Размер:
2.34 Mб
Скачать

74.Неукорачивающие грамматики и разрешимость языка.

Грамматики, в которых все правила обладают тем свойством, что их правые части не короче левых, называются неукорачивающими

Теорема 2. Если G — неукорачивающая грамматика, то язык L(G) разрешим.

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

Очевидно, что все контекстные грамматики являются неукорачивающими.

Справедливо и обратное: для .любой неукорачивающей грамматики существует эквивалентная ей контекстная грамматика.

Т.о, класс языков, порождаемых неукорачивающими грамматиками, совпадает с классом языков типа 1.

Т.о., разрешимость (и даже примитивная рекурсивность) является необходимым условием принадлежности языка типу 1, и, следовательно, любое перечислимое, но не примитивно-рекурсивное множество цепочек является языком типа 0, но не типа 1.

Проблемы распознавания свойств языка по свойствам задающей его грамматики часто оказываются алгоритмически неразрешимыми

!В частности, неразрешима проблема распознавания эквивалентности двух грамматик,

!неразрешима также проблема: для языка типа i определить, является ли он языком типа j для j > i.

!!! Неразрешимость алгоритмической проблемы в целом не исключает разрешимости ее для конкретных случаев.

75.Метаязык Бэкуса.

Описание языка с помощью нормальных форм Бэкуса — совокупность «металингвистических формул» — выражений вида X:: = Y1|...|Yn, где X — некоторый текст, заключенный в угловые скобки и называемый металингвистической переменной, Y1, ..., Yn — последовательности металингвистических переменных и основных символов языка. Знак ::= — металингвистическая связка, читается как «есть» или «—это»; знак | — это металингвистическая связка «или»; металингвистическая переменная — имя конструкции языка; металингвистическая формула в целом — это описание различных синтаксических вариантов строения конструкции X, стоящей в левой части, через другие конструкции и основные символы языка, указанные в правой части. Перечисление вариантов производится с помощью связки. Пример. а. Множество идентификаторов АЛГОЛ-60 — это множество цепочек из букв и цифр, начинающихся с буквы. áидентификаторñ :: = áбукваñ|áбукваñ áБЦ-цепочкаñ; áБЦ-цепочкаñ :: = áбукваñ|áцифраñ| áбукваáñБЦ-цепочкаñ|áцифраáñБЦ-цепочкаñ; áбукваñ ::=a|b|...|z; áцифраñ :: = 0|1|...|9. Основные символы языка — это 26 букв латинского алфавита и 10 цифр. б. Язык арифметических выражений (без констант и с фиксированным множеством переменных а, b, с) в метаязыке Бэкуса:

áарифметическое выражениеñ :: = áтермñ| áарифметическое выражениеñ + áтермñ | áарифметическое выражениеñ – áтермñ; áтермñ :: = áмножительñ | áтермñ áмножительñ | áтермñ / áмножительñ; áмножительñ :: =(áарифметическое выражениеñ) | áпеременнаяñ; áпеременнаяñ ::=а|b|с.

76. Контекстно-свободные грамматики. Приведение контекстно-свободных грамматик.

Чтобы определить то, что называют к-с грамматикой надо:

(а)указать конечное множество A; его элементы называют символами;

(б) разделить все символы алфавита A на две группы: терминальные ("окончательные") и нетерминальные ("промежуточные");

(в)выбрать среди нетерминальных символов один, называемый начальным;

(г)указать конечное число правил грамматики, каждое из которых должно иметь видK-> X

где K - некоторый нетерминальный символ, а X - слово (в него могут входить и терминальные, и нетерминальные символы).

Приведение к-с грамматик.

Проблема — выбор грамматики, наиболее подходящей по тем или иным свойствам, или проблема эквивалентного преобразования грамматики к нужному виду.

Желаемые свойства — однозначность,нетерминальных символов, простота вывода и т.д.

Универсальных методов эквивалентных преобразований КС-грамматик не существует из-за неразрешимости алгоритмических проблем распознавания эквивалентности КС-грамматик и существенной неоднозначности КС-языков.

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

Слово, составленное из терминальных символов, называется выводимым, если существует вывод, который им кончается.

Нетерминальный символ называется существенным, если он достижимый и производящий; в противном случае он называется несущественным, или бесполезным.

Грамматика называется приведенной, если она — неукорачивающая и не содержит бесполезных символов. Для любой КС-грамматики можно построить эквивалентную ей приведенную КС-грамматику

Приведенная грамматика G¢ = (V¢, W¢, R¢, J), эквивалентная предыдущей, определяется так:

W¢ — это множество существенных символов G¢: W¢ = Mk Ç Ql ; Mk — множество достижимых символов, а Ql — производящих.

R¢ содержит только те правила из R, в которых нет бесполезных символов;

V¢ содержит только такие терминальные символы, которые встречаются в правых частях правил из R.

Равенство L(G) = L(G¢) доказавается.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]