Упражнение 2.1.25 |
Неоднозначность в контекстно-свободных грамматиках
7.4. Языки Дика и Лукасевича
Определение 7.4.1. Языком Дика (Dyck language) над 2n буквами называется контекстно-свободный язык над алфавитом {a1,b1,a2,b2,...,an,bn}, порождаемый грамматикой
![\begin{align*}
S \; & {\to} \; \varepsilon \\
S \; & {\to} \; a_1 S b_1 S \\
& \vdots \\
S \; & {\to} \; a_n S b_n S .
\end{align*}](/sites/default/files/tex_cache/8f7026c60564816490663a202114c149.png)
Замечание 7.4.2. Словами этого языка являются последовательности правильно вложенных скобок n типов (если считать символ ai левой скобкой, а символ bi соответствующей правой скобкой).
Теорема 7.4.3. Слово w над алфавитом {a,b} выводится в грамматике
![\begin{align*}
S \; & {\to} \; \varepsilon , \\
S \; & {\to} \; a S b S
\end{align*}](/sites/default/files/tex_cache/939d3701eef557df6dd32c40782bbbc2.png)
![| w |_{a} = | w |_{b}](/sites/default/files/tex_cache/922a28c593ae0b853797da777d9ef6f5.png)
![x \prefix w](/sites/default/files/tex_cache/a4a58d66db2c111a4d1f718ae21cacff.png)
![| x |_{a} \geq | x |_{b} .](/sites/default/files/tex_cache/e1928cedc2568a649d4d5d3f5cf51fae.png)
Теорема 7.4.4. При любом положительном целом n грамматика из определения 7.4.1 является однозначной.
Определение 7.4.5. Языком Лукасевича (Lukasiewicz language) над n + 1 буквами называется контекстно-свободный язык над алфавитом {a0,a1,...,an}, порождаемый грамматикой
![\begin{align*}
S \; & {\to} \; a_0 , \\
S \; & {\to} \; a_1 S , \\
S \; & {\to} \; a_2 S S , \\
& \vdots \\
S \; & {\to} \; a_n S^n .
\end{align*}](/sites/default/files/tex_cache/e6a9da15b1667ee56fbe57c49c7a2dd2.png)
Теорема 7.4.6. Слово w над алфавитом {a0,a1,...,an} принадлежит языку Лукасевича над n + 1 буквами тогда и только тогда, когда
![\sum_{i=0}^n (i-1) | w |_{a_i} = -1](/sites/default/files/tex_cache/513b2d4481c36b3a2a9ee959f00d6606.png)
![x \prefix w](/sites/default/files/tex_cache/a4a58d66db2c111a4d1f718ae21cacff.png)
![\sum_{i=0}^n (i-1) | x |_{a_i} \geq 0 .](/sites/default/files/tex_cache/6eda6d6b031470952c60bf928670ce49.png)
Теорема 7.4.7. При любом грамматика из определения 7.4.5 является однозначной.
Упражнение 7.4.8. Принадлежит ли слово aababb языку, порождаемому грамматикой
![\begin{align*}
S \; & {\to} \; a S b S , \\
S \; & {\to} \; \varepsilon ?
\end{align*}](/sites/default/files/tex_cache/86ebda3f99cafec8de9e77841e87ac88.png)
Упражнение 7.4.9. Принадлежит ли слово cacbcbbacacccaaaacabcaa языку, порождаемому грамматикой
![\begin{align*}
S \; & {\to} \; a , \\
S \; & {\to} \; b S , \\
S \; & {\to} \; c S S ?
\end{align*}](/sites/default/files/tex_cache/7541779b981f9c38c1cf6ea239726d3b.png)
Упражнение 7.4.10. Эквивалентны ли грамматика
![\begin{align*}
T \; & {\to} \; a , \\
T \; & {\to} \; T T , \\
T \; & {\to} \; T T b ?
\end{align*}](/sites/default/files/tex_cache/b22523c174ef25eef0f5e4fd1f846043.png)
![\begin{align*}
R \; & {\to} \; a , \\
R \; & {\to} \; R a , \\
R \; & {\to} \; R R b ?
\end{align*}](/sites/default/files/tex_cache/5609f2832f53c44779e2b4859128b970.png)
Упражнение 7.4.11. Описать язык, порождаемый грамматикой
![\begin{align*}
F \; & {\to} \; a b , \\
F \; & {\to} \; a F b, \\
F \; & {\to} \; F F .
\end{align*}](/sites/default/files/tex_cache/34cd784e31c5869aa692386bdaa026b1.png)
Упражнение 7.4.12. Описать язык, порождаемый грамматикой
![\begin{align*}
F \; & {\to} \; a , \\
F \; & {\to} \; b F, \\
F \; & {\to} \; c F F, \\
F \; & {\to} \; d F F F .
\end{align*}](/sites/default/files/tex_cache/d01237a826c3068fe73d3c5867113cd1.png)
Упражнение 7.4.13. Найти однозначную контекстно-свободную грамматику,
порождающую язык .