Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО Часть 1.docx
Скачиваний:
25
Добавлен:
25.04.2019
Размер:
133.36 Кб
Скачать
  1. Графический язык

Грамматика описывается в виде графа.

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

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

  1. Классификация языков и грамматик

Классификация Холмского: 4 вида грамматик:

  • Грамматики типа 0 – грамматики с фразовой структурой. Грамматики естественных языков. На правила не накладывается ограничений.

G = (VT, VN, P, S): V = VT∪VN; α→β; α ∈ V+, β ∈ V*

  • Грамматики типа 1:

а) контекстно-зависимые грамматики (КЗ)

Правило вывода:

α12→ α1βα2

α1, α2 ∈ V*; A ∈ VN; β ∈ V+

α1, α2 – контекст

б) неукорачивающие грамматики (НУ)

Правило вывода:

α→β; α, β ∈ V+; |β|≥|α|

Общее название – НУКЗ.

  • Грамматики типа 2 – контекстно-свободная грамматика

Правило вывода:

A→β; A ∈ VN; β ∈ V+

а) неукорачивающие (НКС): β ∈ V+

б) укорачивающие (УКС): β ∈ V*

Используются для описания синтаксиса языков программирования.

  • Грамматики типа 3 – регулярные грамматики

а) леволинейные:

A→Bα; A, B ∈ VN; α ∈ VT*

б) праволинейные

A→αB; A, B ∈ VN; α ∈ VT*

Лексика ЯП описывается на основе грамматик типа 3.

0

1

3

2

В соответствии с грамматиками классифицируются и языки:

  1. Языки с фразовой структурой. Для языков типа 0 невозможно построить транслятор, который гарантированно бы выполнял разбор предложений языка за ограниченное время на основе ограниченных ресурсов

  2. Контекстно-зависимые языки. Время распознавания (трансляции) экспоненциально зависит от длины исходной цепочки символов

  3. Контекстно-свободные языки. Зависимость времени распознавания цепочки от длины цепочки является степенной (tln, n = 2|3|4)

  4. Регулярные языки. Время распознавания прямо пропорционально длине цепочки.

  1. Понятие вывода в языке, виды вывода, дерево вывода

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

Цепочка β=δ1γδ2 называется непосредственно выводимой из цепочки α=δ1ωδ2, если существует правило вывода (ω→γ)∈P в рамках грамматики G=(VT, VN, P, S), V=VT∪VN, δ1, δ2, γ ∈ V*; ω ∈ V+.

Цепочка β называется непосредственно выводимой из цепочки α (α=>*β), если

  1. β непосредственно выводится из α (α=>β)

  2. существует такая цепочка γ, которая выводится из α (α=>*γ), а β непосредственно выводится из γ (γ=>*β)

α => γ => γ1 => γ2 => γ3 => … => γn => β (n≥1) – цепочка вывода (вывод). Каждый шаг здесь – шаг вывода.

Если n>1, то α=>+β

α=>4β – цепочка из 4 шагов

3

γ1 => γ2 – шаг 3

Вывод называется законченным, если больше нельзя сделать ни одного шага. Результатом может быть либо пустая цепочка, либо цепочка только из терминальных символов (конечная цепочка вывода).

Цепочка α ∈ V+ называется сентенциальной формой грамматики, если она выводится непосредственно из целевого символа грамматики: S => *α

Цепочка α ∈ VT* называется конечной сентенциальной формой, если она получена в результате законченного вывода (предложения).

Язык L – это множество всех конечных сентенциальных форм грамматики G.

L(G) = {α ∈ VT*; S => *α}

Вывод бывает двух видов: левосторонний и правосторонний. При левостороннем выводе на каждом очередном шаге правило вывода применяется к крайнему левому нетерминальному символу цепочки. При правостороннем выводе – наоборот.

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

Корень дерева – целевой символ грамматики S.

Листья дерева – терминальные символы или пустая цепочка λ.

Если в дереве есть некоторая вершина А, и связанные с этой вершиной узлы bi∈(VT∪VN)∪λ, это значит, что существует правило:

А → b1|b2|b3|…|bn) ∈ P

Дерево вывода может строиться сверху вниз и снизу вверх (левосторонний и правосторонний вывод)

Построение дерева вывода:

  1. Определение целевого символа S

  2. Выбор подходящего правила и раскрытие S на несколько символов I уровня

  3. Выбор крайней нетерминальной вершины (левой) и раскрытие на несколько вершин следующего уровня с помощью соответствующего правила

  4. Шаг 3) повторяется до тех пор, пока не будут получены вершины только их терминальных символов.