Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СПО1.doc
Скачиваний:
59
Добавлен:
02.05.2014
Размер:
473.6 Кб
Скачать

Цепочки вывода

Вывод – это процесс порождения предложений языка на основе правил грамматики.

Цепочка β наз-ся непосредственно выводимой из цепочки α, грамматики G(VT,VN,P,S), где V=VT U VN, γ € V*

β=δ1 γ δ2

α= δ1 ω δ2

δ12€ V*, ω € V+

если во мн-ве пр-я грамматики существует правило ω→γР

ω→ γ € P, α => β (непосредственная выводимость)

Цепочка β выводима из α: α =>* β, если выполняется одно из 2-х условий: 1. α =>β; 2. существует α =>* γ γ => β

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

Если известно количество шагов цепочки β из α, то α =>3 β (за 3 шага).

Вывод называется законченным, если на основе цепочки β нельзя сделать больше ни одного шага вывода (либо сод-т только терминальные символы)

Цепочка β получ-ая в рез-те законченного вывода наз. законченной цепочкой вывода.

Цепочка α наз. сентенциальной формой грамматики, если она выводима из целевого символа грамматики.

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

Для КС-грамматик и регулярных грамматик всегда можно построить левосторонний и правосторонний выводы.

Дерево вывода

Деревом вывода – граф, которое соответствует некоторой цепочке вывода и удовлетворяет следующим условиям:

- каждая вершина дерева обозначается символом грамматики;

- корнем дерева всегда является целевой символ грамматики;

- листьями дерева всегда являются терминальные символы грамматики;

- если некоторый узел обозначен нетерминальным символом A, а связанные с ним узлы – символами b1,b2,…,b­n­­, то в грамматике G существует правило A-> b1,b2,…,b­n­­.

Дерево вывода в указанном виде всегда можно построить только для КС-грамматик и регулярных грамматик.

Дерево вывода можно построить двумя способами:

1. сверху вниз

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

2. Снизу вверх

Построение происходит наоборот, т.е. начинается с листьев дерева.

Правила задающие неоднозначность грамматик

Грамматика называется однозначной, если для нее можно построить единственный левосторонний или правосторонний вывод.

Однозначность – это свойство грамматики, а не языка.

Для KС языков сущ-т правила определения однозначности:

1) A -> AA | α

2) A -> A α A | β

3) A -> α A | A β | γ

4) A -> α A | α A β A | γ

Здесь А € VN α, β, γ € (VNUVT)

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