Дана контекстно‑свободная грамматика G с правилами S -> a S b | S S | ε анализируйте язык L(G): определите, является ли грамматика неоднозначной, постройте НКА или РДА при возможностях и объясните, к какому типу формальных языков L(G относится и почему

12 Окт в 08:19
4 +4
0
Ответы
1

Кратко: грамматика
S → a S b | S S | ε
порождает язык правильных сбалансированныхсбалансированныхсбалансированных скобочных строк, где «a» = «»,«b»=«», «b» = «»,«b»=«» Dyck‑языксоднимтипомскобокDyck‑язык с одним типом скобокDyckязыксоднимтипомскобок. Грамматика неоднозначна, язык является контекстно‑свободным, не регулярным, но распознаётся детерминированным магазинным автоматом т.е.этодетерминированныйКС‑языкт. е. это детерминированный КС‑языкт.е.этодетерминированныйКСязык.

Развёрнуто:

1) Описание языка LGGG

LGGG = { w ∈ {a,b}* | в каждой префиксной части w число a ≥ число b, и в целом число a = число b }.Иными словами — все корректно сбалансированные строки вида комбинаций пар a...b, т.е. классический Dyck‑язык с одной парой скобок.

2) Неоднозначность грамматики
Грамматика неоднозначна. Пример: строка "ab".
Два различных вывода:

S ⇒ a S b ⇒ a ε b = "ab"S ⇒ S S ⇒ aSba S baSb S ⇒ aεba ε baεb ε = "ab"
Оба вывода дают разные деревья разбора, значит грамматика неоднозначна.

3) Построение автомата детерминированныймагазинныйавтоматдетерминированный магазинный автоматдетерминированныймагазинныйавтомат НКА/ДКА не подойдёт, язык не регуляр, но можно построить простой детерминированный МПА, который считывает символы слева направо, на каждом 'a' кладёт маркер в стек, на каждом 'b' — снимает маркер; если попытка снять при пустом стеке — отклоняет. При конце входа автомат принимает тогда и только тогда, когда стек пуст кромеднакроме днакромедна.

Формальное описание одноставовыйдетерминированныйМПА,принимающийпопустомустекуодноставовый детерминированный МПА, принимающий по пустому стекуодноставовыйдетерминированныйМПА,принимающийпопустомустеку:

Q = {q}, Σ={a,b}, Γ={Z, X} Z—символднаZ — символ днаZсимволдна, q0=q, нач. стек = Z.Переходы δ:
δq,a,Zq, a, Zq,a,Z = q,XZq, XZq,XZδq,a,Xq, a, Xq,a,X = q,XXq, XXq,XXδq,b,Xq, b, Xq,b,X = q,εq, εq,ε поппоппопнет перехода δq,b,Zq, b, Zq,b,Z т.е.прилишнейbавтоматотклоняетт. е. при лишней b автомат отклоняетт.е.прилишнейbавтоматотклоняетПринимает, если на конце входа стек равен Z пуст,кромеднапуст, кроме днапуст,кромедна.

Это детерминированно: для каждой комбинации символ,верхстекасимвол, верх стекасимвол,верхстека не более одного перехода.

4) К какому типу формальных языков относится LGGG и почему

LGGG — контекстно‑свободный язык порождаетсяКС‑грамматикойпорождается КС‑грамматикойпорождаетсяКСграмматикой.LGGG не является регулярным. Доказательство стандартно через лемму о накачке: пусть p — константа накачки, возьмём s = a^p b^p ∈ L. Любое разбиение s = xyz с |xy| ≤ p, |y| > 0 даёт y состоящее только из a. При i = 0 получим xz с меньшим числом a, чем b, следовательно xz ∉ L — противоречие.LGGG на самом деле детерминированно контекстно‑свободен Dyck1Dyck_1Dyck1 . Для него существует детерминированный МПА каквышекак вышекаквыше, значит язык принадлежит множеству детерминированных КС‑языков DCFLDCFLDCFL. Замечание: хотя язык DCFL, данная грамматика S → a S b | S S | ε сама неоднозначна; для языка существуют и однозначные/детерминированные описания напримеравтоматнапример автоматнапримеравтомат.

Если нужно, могу:

привести простую неоднозначность для более длинной строки (например "abab"),или записать детерминированный МПА в другом формальном формате таблицапереходовтаблица переходовтаблицапереходов,или дать неформальную визуализацию дерева разбора и объяснить, как получить однозначную грамматику.
12 Окт в 09:32
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир