Язык ДикаЯзыком Дика (англ. Dyck language) над 2n буквами называется контекстно-свободный язык, который состоит из сбалансированных наборов скобок n разных видов. Формально это язык над алфавитом {a1,b1,a2,b2,…an,bn}, порождаемый грамматикой S → ε, S → a1Sb1S, . . . , S → anSbnS. При любом положительном целом n грамматика является однозначной. Словами этого языка являются последовательности правильно вложенных скобок n типов. Язык назван в честь немецкого алгебраиста Вальтера фон Дика. Ограниченный язык ДикаОграниченный язык Дика над алфавитом B=UU` есть множество тех слов (цепочек) в алфавите B, которые переводятся в ε последовательным вычеркиванием пар аа`,bb`,… Но не пар a`a, b`b. Пример порождения языка Дика может быть представлен следующей грамматикой: S→SS S→aSa`,bSb`,… S→aa`,bb`,… Вывод для цепочки abbaa`b`cc`bb`b`a`
![]() так же возможны и другие выводы данной цепочки Простые цепочки по Дику(Д-простые цепочки) Цепочка dD* называется Простой цепочкой по Дику если никакое непустое начало цепочки d отличное от самой d, не принадлежит D*. Заменяя слово «начало» на слово «конец», получаем эквивалентное определение. g=xf1…fm, где fiDxi, xi, i=1,…,m. Пример Д-простая цепочка: a`baa`bb`b`a Рассмотрим данную цепочку с первого элемента цепочки — a`. Парой для него будет последний элемент цепочки — a. Критерием для пары является отсутствие идентичности элементов между собой. Эти элементы являются спаренными и обозначается: a` Dx это множество всех Д-простых цепочек, которые начинаются элементом x и оканчиваются элементом . Построение однозначной КС-грамматики, порождающей язык ДикаЗаданный алфавит {a, a`,b, b`} Нетерминальные символы {Da, Da`, Db, Db`, A} некоторому языку, который состоит из конкатенаций любых цепочек DaDa`Db Db` E — пустая цепочка. Da содержит, помимо цепочки aa`, все цепочки, имеющие вид af1…fma` где fiDxi, xi (1) Da,=aAa`=aa` (2) A=(Da`+Db+ Db`)(A+E) Языку Дика D соответствует уравнение: (3) D*=(Da+Da`+Db+ Db`) Уравнения типов (1) и (2) вместе с уравнением (3) задают некоторую однозначную грамматику. Примечание: Эта грамматика однозначна, так как она порождает слева направо Д-простые сомножители цепочки D*. Однозначная грамматика, порождающая ограниченный язык ДикаДля построения данной грамматики мы исключаем множества Da`, Db` и т. д. Цепочки начинающиеся штрихованными элементами, не рассматриваются. Da=aUa`+aa` Db=bUb`+bb` U=(Da+Db)(U+E) D*r=(Da+Db)D*r+E Литература
|
Portal di Ensiklopedia Dunia