Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОИС_К_ЛЕКЦ_11.doc
Скачиваний:
78
Добавлен:
11.11.2018
Размер:
659.97 Кб
Скачать

Грамматики

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

(Порождающая) грамматика – это упорядоченная четвёрка Г = áV, W, I, Rñ, где: 1) V и 2) W - непересекающиеся непустые конечные множества; 3) I - некоторый элемент W; 4) R - конечное множество цепочек вида φ → ψ, где φ и ψ - различные цепочки в словаре V U W и → - символ, не входящий в V U W . Множества V и W называются соответственно основным и вспомогательным словарями (алфавитами) грамматики Г, а их элементы – соответственно основными и вспомогательными символами и Г**); I называется начальным символом Г, R - схемой Г и элементы R - правилами Г. Цепочки φ и ψ называются соответственно левой и правой частями правила φ → ψ. Объединение V U W мы будем иногда называть полным словарём грамматики Г.

Пусть r = φ → ψ – правило грамматики Г и ξ1 * φ * ξ2 – вхождение φ в цепочку ω = ξ1φξ2 в словаре V U W . В этом случае мы будем говорить, что цепочка h = ξ1ψξ2 получается из w применением правила r к вхождению ξ1 * φ * ξ2 цепочки φ. Если цепочка h получается из цепочки ω применением какого-либо правила Г, будем говорить, что h непосредственно выводима из ω в Г, и писать ω|=Гh или просто ω|=h.

Последовательность цепочек D = (ω0, ω1,…, ωn) (n ≥1) называется выводом ωn из ω0 в грамматике Г, если для каждого i , 1 ≤ in , имеет место ωi -1 = ωi. Число n называется длиной вывода D. Если существует вывод h из ω в Г, то мы будем говорить, что h выводима из ω в Г, и писать ω| – Гh или ω| – h.

Вывод (ω0, ω1,…, ωn) называется полным, если ω0 = I и ωn – цепочка в словаре V.

Если D = (ω0, ω1,…, ωn) – вывод в грамматике Г и для некоторого I = 1, …, n цепочка ωi получается из ωi -1 применением правила φ → ψ к вхождению = ξi *ψ*hi цепочки φ в ωi -1, то мы будем говорить, что это правило применяется на i-м шаге вывода D к вхождению ξi *ψ*hi и что данное вхождение φ в ω заменяется на i-м шаге вывода D. Размеченным выводом, соответствующим выводу D, мы будем называть последовательность (ω0, ω1,…, ωn-1, ωn), где ωi (i = 0, …, n – 1) – вхождение, заменяемое на i-м шаге вывода D. Одному выводу может, вообще говоря, соответствовать много размеченных выводов (см. упражнение 1.9.).

Множество цепочек в основном словаре грамматики Г, выводимых из её начального символа (иначе – множество последних цепочек всевозможных полных выводов в Г), называется языком, порождаемым грамматикой Г, и обозначается L(Г).

Из сформулированных определений видно, что существенным свойством процесса работы порождающей грамматики является его недетерминированность: если оборвать вывод на каком-либо шаге, то продолжение, вообще говоря, не восстанавливается однозначно по оставшейся части и может быть выполнено разными способами. Таким образом, грамматика – это исчисление, т.е. разрешение производить некоторые операции [Марков 1954, стр. 203] – в данном случае подстановки в цепочки одних подцепочек вместо других (а не алгоритм, т.е. не предписание производить какие-то операции).

Пример. Пусть Г = á{a, b, c}, {A, B, C, D}, A, {ABCA, BCBD, BCbc, DCa, cAc, aAa}ñ. Пример полного вывода в Г: (А, ВСА, ВСВСА, ВСВСВСА, ВСDСА, ВСDСВСА, ВСDСbсА, ВСаbсА, bсаbсА, bсаbс). Соответствующий размеченный вывод (в данном случае единственный): (* А *, ВС * А *, ВСВС * А *, ВС * ВСВ * СА, ВСDС * А *, ВСDС * ВС * А, ВС * DС * bсА, * ВС * аbсА, bсаb * сА *, bсаbс). Легко видеть, что L(Г) = {a, bc}+.

Грамматика Г = áV, W, I, Rñ называется грамматикой составляющих, или НС-грамматикой*), если каждое её правило имеет вид ξ1Аξ2 → ξ1θξ2, где ξ1, ξ2 - произвольные цепочки в словаре V U W, А Î W и θ - произвольная непустая цепочка в V U W.

Правила вида ξ1Аξ2 → ξ1θξ2, где ξ1, ξ2, А и θ имеют указанный только что смысл, иногда называют НС-правилами; цепочка ξ1, цепочка ξ2 и пара цепочек (ξ12) называются соответственно левым контекстом, правым контекстом и контекстом НС-правила ξ1Аξ2 → ξ1θξ2. При применении НС-правила фактически заменяется только одно вхождение символа А. но возможность замены зависит от наличия нужного контекста. Если ξ1 = ξ2 = L, то правило называется бесконтекстным (или контекстно-свободным), сокращенно Б-правилом (или КС-правилом).

НС-грамматика называется бесконтекстной (или контекстно-свободной), сокращенно Б-грамматикой (или КС-грамматикой), если все её правила бесконтекстные.

(Б-) грамматика называется автоматной, сокращенно А-грамматикой**), если каждое её правило имеет вид АаВ или Аа, где А, В – вспомогательные символы и а основной символ.

Языки, порождаемые НС-, Б- и А-грамматиками, называются соответственно НС-, Б- и А-языками.

ЛИТЕРАТУРА

Автоматизированные информационные системы. Криницкий Н.А., Миронов Г. А., Флоров Г. Д./ Под ред. А.А.Дородницына. – М.: Наука. Главная редакция физико-математической литературы, 1982.-384 с.

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