Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ТА.docx
Скачиваний:
11
Добавлен:
24.09.2019
Размер:
355.83 Кб
Скачать

16. Замкнутость и разрешимость кс-языков

КС-язык – язык построен по КС-грамматике

Замкнутость.

Опр. Язык грамматики – множество цепочек, которое порождается этой грамматикой из стартового состояния. Если язык задан некоторой контекстно-свободной грамматикой, то он называется контекстно-свободным языком (он может быть регулярным, но не в общем случае)

Теорема. КС языки замкнуты относительно объединения, конкатенации (конкатенация языков – язык, цепочки которого представляют собой конкатенацию цепочек этих языков (конкатенация – символ «·»,цепочки полученные с ее помощью имеют вид х·у=ху=а1а2…акb1…bl, то есть к символам цепочки х приписываем справа символы цепочки у, в общем случае операция не коммутативна (кроме хх=хх, хε=εх)), замыкания, гомоморфизма (язык, цепочки которого являются цепочки, гомоморфные цепочкам языка L), обрат. гомоморфизма, обращения языков (символы цепочки в обратном порядке - обратная цепочка, множество таких цепочек - обращение языка), но не замкнуты относительно пересечения языков.

Разрешимость.

Мы можем ответить на 2 вопроса:

1. Дан КСГ, пуст данный язык или нет?

2. Есть язык, цепочка из символов языка. Принадлежит ли цепочка языку?

Если у автомата все допустимые состояния изолированы, то его язык пуст. Если есть хотя бы один путь из начала в заключительное состояние, то язык не пуст. Строим автомат с магазинной памятью, пропускаем цепочку через данный автомат и смотрим на результаты. Если автомат ее допускает, значит, цепочка принадлежит языку, иначе – нет. Решение есть, если решение совершается за конечное число шагов, решение может быть длительным.

17. Полезные, порождающие и достижимые символы кс – грамматики. Нормальная форма Хомского кс-грамматики

Опр. КС – грамматика – G=(V,T,P,S)

V – множество переменных (переменные определяют язык – не терминалы, синтаксические категории)

Т – множество терминалов (элементы алфавита, из которого составляются цепочки определяемого данной грамматикой языка)

Р – множество правил вывода, конечное (продукции, каждая из них представляет рекурсивное определение языка. Продукция состоит из переменной, определяющей продукцию – головы продукции; символа продукции «→»; конечной цепочки, состоящей из терминалов и переменных – тело продукции = способ образования цепочек языка, определяемого переменной в голове)

S – стартовый символ

Опр. Символ х называется полезным в этой грамматике, если существует порождение следующего вида: S*=> αXβ *=> w, где w T* (терминальная цепочка) в данной грамматике.

Опр. Символ Х называется порождающим, если из него можно вывести терминальную цепочку Х =>w, w T*. Любой терминальный символ является порождающим

Опр. Символ Х называется достижимым, если существует порождение из стартового символа цепочек с этим символом Х. S=> αXβ для некоторых α,β.

Как связаны эти символы? Полезные являются и порождающими и достижимыми. Если из грамматики удалить непорождающие и недостижимые символы, то получим новую грамматику с полезными символами. Язык новой грамматики (с полезными символами) совпадает с языком исходной грамматики (с неиспользуемыми символами)

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

1). А → ВС, А, В, С – некоторые переменные; 2). А → а, а – терминал; называется грамматикой, имеющей нормальную форму Хомского (НФХ-грамматики). Все КСГ являются НФХ-грамматиками

Теорема: Если G – контекстно-свободная грамматика с непустым языком, то существует НФХ – грамматика G1 с языком: L(G1) = L(G) – {ε}, то есть практически совпадает с языком данной грамматики.