Interested Article - Язык Дика
- 2021-02-14
- 1
Языком Дика ( англ. Dyck language ) над 2n буквами называется контекстно-свободный язык , который состоит из сбалансированных наборов скобок n разных видов. Формально это язык над алфавитом {a 1 ,b 1 ,a 2 ,b 2 ,…a n ,b n }, порождаемый грамматикой S → ε, S → a 1 Sb 1 S, . . . , S → a n Sb n S.
При любом положительном целом n грамматика является однозначной. Словами этого языка являются последовательности правильно вложенных скобок n типов.
Язык назван в честь немецкого алгебраиста Вальтера фон Дика .
Ограниченный язык Дика
Ограниченный язык Дика над алфавитом B=U U` есть множество тех слов (цепочек) в алфавите B, которые переводятся в ε последовательным вычеркиванием пар аа`,bb`,… Но не пар a`a, b`b.
Пример порождения языка Дика может быть представлен следующей грамматикой:
S→SS
S→aSa`,bSb`,…
S→aa`,bb`,…
Вывод для цепочки abbaa`b`cc`bb`b`a`
так же возможны и другие выводы данной цепочки
Простые цепочки по Дику
(Д-простые цепочки)
Цепочка d D* называется Простой цепочкой по Дику если никакое непустое начало цепочки d отличное от самой d, не принадлежит D*. Заменяя слово «начало» на слово «конец», получаем эквивалентное определение.
g=xf 1 …f m ,
где f i D xi , x i , i=1,…,m.
Пример
Д-простая цепочка: a`baa`bb`b`a
Рассмотрим данную цепочку с первого элемента цепочки — a`. Парой для него будет последний элемент цепочки — a. Критерием для пары является отсутствие идентичности элементов между собой. Эти элементы являются спаренными и обозначается: a `
D x это множество всех Д-простых цепочек, которые начинаются элементом x и оканчиваются элементом .
Построение однозначной КС-грамматики, порождающей язык Дика
Заданный алфавит
{a, a`,b, b`}
Нетерминальные символы
{D a , D a` , D b , D b` , A} некоторому языку, который состоит из конкатенаций любых цепочек D a D a` D b D b`
E — пустая цепочка.
D a содержит, помимо цепочки aa`, все цепочки, имеющие вид
af 1 …f m a`
где f i D xi , x i
(1) D a ,=aAa`=aa`
(2) A=(D a` +D b + D b` )(A+E)
Языку Дика D соответствует уравнение:
(3) D*=(D a +D a` +D b + D b` )
Уравнения типов (1) и (2) вместе с уравнением (3) задают некоторую однозначную грамматику .
Примечание:
Эта грамматика однозначна, так как она порождает слева направо Д-простые сомножители цепочки D*.
Однозначная грамматика, порождающая ограниченный язык Дика
Для построения данной грамматики мы исключаем множества D a` , D b` и т. д.
Цепочки начинающиеся штрихованными элементами, не рассматриваются.
D a =aUa`+aa`
D b =bUb`+bb`
U=(D a +D b )(U+E)
D* r =(D a +D b )D* r +E
Литература
- Пентус А. Е., Пентус М. Р. Теория формальных языков: Учебное пособие. — М.: Изд-во ЦПИ при механико-математическом ф-те МГУ, 2004. — 80 с.
- Гросс М., Лантен А. . — М. : Мир, 1971. — С. -239. — 294 с.
- 2021-02-14
- 1