Глава 2

Контекстно-свободные языки

[59/15%]
Показать
LaTeX
§
Задача 2.1

Вспомним КС-грамматику G4G_{4}, приведённую в примере 2.4. Для удобства переименуем её переменные в одиночные буквы следующим образом.

E→E+T∣TT→T×F∣FF→(E)∣a \begin{aligned} & E \rightarrow E+T \mid T \\ & T \rightarrow T \times F \mid F \\ & F \rightarrow (E) \mid \mathrm{a} \end{aligned}

Приведите деревья вывода и выводы для каждой строки.

?
(a)

a

(b)

a+a\mathrm{a}+\mathrm{a}

(c)

a+a+aa+a+a

(d)

((a))

Задача 2.2
?
(a)

Используя языки A={am bncn∣m,n≥0}A=\left\{ \mathrm{a}^{m} \mathrm{~ b}^{n} \mathrm{c}^{n} \mid m, n \geq 0\right\} и B={an bncm∣m,n≥0}B=\left\{ \mathrm{a}^{n} \mathrm{~ b}^{n} \mathrm{c}^{m} \mid m, n \geq 0\right\} вместе с примером 2.36, покажите, что класс контекстно-свободных языков не замкнут относительно пересечения.

(b)

Используя пункт (a) и закон де Моргана (теорема 0.20), покажите, что класс контекстно-свободных языков не замкнут относительно дополнения.

Задача 2.3

Ответьте на каждый пункт для следующей контекстно-свободной грамматики GG.

R→XRX∣SS→aT b∣bTaT→XTX∣X∣εX→a∣b \begin{aligned} R & \rightarrow X R X \mid S \\ S & \rightarrow \mathrm{a} T \mathrm{~ b} \mid \mathrm{b} T \mathrm{a} \\ T & \rightarrow X T X \mid X \mid \varepsilon \\ X & \rightarrow \mathrm{a} \mid \mathrm{b} \end{aligned}
?
(a)

Что является переменными GG?

(b)

Что является терминалами GG?

(c)

Какая переменная является начальной для GG?

(d)

Приведите три строки из L(G)L(G).

(e)

Приведите три строки, не принадлежащие L(G)L(G).

(f)

Верно или неверно: T⇒abaT \Rightarrow \mathrm{aba}.

(g)

Верно или неверно: T⇒∗T \stackrel{*}{\Rightarrow } aba.

(h)

Верно или неверно: T⇒TT \Rightarrow T.

(i)

Верно или неверно: T⇒∗TT \stackrel{*}{\Rightarrow } T.

(j)

Верно или неверно: XXX⇒∗X X X \stackrel{*}{\Rightarrow } aba.

(k)

Верно или неверно: X⇒∗X \stackrel{*}{\Rightarrow } aba.

(l)

Верно или неверно: T→∗XXT \xrightarrow {*} X X.

(m)

Верно или неверно: T⇒∗XXXT \stackrel{*}{\Rightarrow } X X X.

(n)

Верно или неверно: S⇒∗εS \stackrel{*}{\Rightarrow } \varepsilon.

(o)

Дайте словесное описание L(G)L(G).

Задача 2.4

Приведите контекстно-свободные грамматики, порождающие следующие языки. Во всех пунктах алфавит Σ\Sigma равен 0,1.

?
(a)

{w∣w содержит не менее трёх единиц}\left\{ w \mid w\text{ содержит не менее трёх единиц}\right\}

(b)

{w∣w начинается и заканчивается одинаковым символом}\left\{ w \mid w\text{ начинается и заканчивается одинаковым символом}\right\}

(c)

{w∣длина w нечётна}\left\{ w \mid \text{длина } w \text{ нечётна}\right\}

(d)

{w∣ длина w нечётна, и её средний символ равен 0}\left\{ w \mid \text{ длина }w\text{ нечётна, и её средний символ равен 0}\right\}

(e)

{w∣w=wR, то есть w является палиндромом}\left\{ w \mid w=w^{\mathcal{R}}, \text{ то есть } w \text{ является палиндромом}\right\}

(f)

Пустое множество

Задача 2.5

Приведите неформальные описания и диаграммы состояний автоматов с магазинной памятью для языков из упражнения 2.4. Во всех пунктах алфавит Σ\Sigma равен 0,1.

?
(a)

{w∣w содержит не менее трёх единиц}\left\{ w \mid w\text{ содержит не менее трёх единиц}\right\}

(b)

{w∣w начинается и заканчивается одинаковым символом}\left\{ w \mid w\text{ начинается и заканчивается одинаковым символом}\right\}

(c)

{w∣длина w нечётна}\left\{ w \mid \text{длина } w \text{ нечётна}\right\}

(d)

{w∣ длина w нечётна, и её средний символ равен 0}\left\{ w \mid \text{ длина }w\text{ нечётна, и её средний символ равен 0}\right\}

(e)

{w∣w=wR, то есть w является палиндромом}\left\{ w \mid w=w^{\mathcal{R}}, \text{ то есть } w \text{ является палиндромом}\right\}

(f)

Пустое множество

Задача 2.6

Приведите контекстно-свободные грамматики, порождающие следующие языки.

?
(a)

Множество строк над алфавитом {a,b}\left\{ \mathbf{a}, \mathbf{b}\right\}, в которых букв a больше, чем букв b

(b)

Дополнение языка {an bn∣n≥0}\left\{ \mathrm{a}^{n} \mathrm{~ b}^{n} \mid n \geq 0\right\}

(c)

{w#x∣wR является подстрокой x, при w,x∈{0,1}∗}\left\{ w \# x \mid w^{\mathcal{R}} \text{ является подстрокой } x, \text{ при } w, x \in \left\{ 0,1\right\}^{*}\right\}

(d)

{x1#x2#⋯#xk∣k≥1, каждое xi∈{a,b}∗, и для некоторых i и j,xi=xjR}\left\{ x_{1} \# x_{2} \# \cdots \# x_{k} \mid k \geq 1, \text{ каждое } x_{i} \in \left\{ \mathrm{a}, \mathrm{b}\right\}^{*}, \text{ и для некоторых } i \text{ и } j, x_{i}=x_{j}^{\mathcal{R}}\right\}

Задача 2.7

Приведите неформальные словесные описания автоматов с магазинной памятью для языков из упражнения 2.6.

?
Задача 2.8

Покажите, что строка the girl touches the boy with the flower имеет два различных левосторонних вывода в грамматике G2G_{2} со стр. 103. Опишите словесно два различных смысла этого предложения.

?
Задача 2.9

Приведите контекстно-свободную грамматику, порождающую язык

A={ai bjck∣i=j или j=k, где i,j,k≥0}. A=\left\{ \mathrm{a}^{i} \mathrm{~ b}^{j} \mathrm{c}^{k} \mid i=j \text{ или } j=k, \text{ где } i, j, k \geq 0\right\} .

Является ли ваша грамматика неоднозначной? Почему да или почему нет?

?
Задача 2.10

Приведите неформальное описание автомата с магазинной памятью, распознающего язык AA из упражнения 2.9.

?
Задача 2.11

Преобразуйте КС-грамматику G4G_{4} из упражнения 2.1 в эквивалентный МП-автомат, используя процедуру из теоремы 2.20.

?
Задача 2.12

Преобразуйте КС-грамматику GG из упражнения 2.3 в эквивалентный МП-автомат, используя процедуру из теоремы 2.20.

?
Задача 2.13

Пусть G=(V,Σ,R,S)G=(V, \Sigma , R, S) — следующая грамматика. V={S,T,U}V=\left\{ S, T, U\right\}; Σ={0,#}\Sigma =\left\{ 0, \# \right\}; а RR — следующее множество правил:

S→TT∣UT→0T∣T0∣#U→0U00∣# \begin{aligned} S & \rightarrow T T \mid U \\ T & \rightarrow 0 T \mid T 0 \mid \# \\ U & \rightarrow 0 U 00 \mid \# \end{aligned}
?
(a)

Опишите L(G)L(G) словесно.

(b)

Докажите, что L(G)L(G) не является регулярным.

Задача 2.14

Преобразуйте следующую КС-грамматику в эквивалентную КС-грамматику в нормальной форме Хомского, используя процедуру из теоремы 2.9.

A→BAB∣B∣εB→00∣ε \begin{aligned} & A \rightarrow B A B \mid B \mid \varepsilon \\ & B \rightarrow 00 \mid \varepsilon \end{aligned}
?
Задача 2.15

Приведите контрпример, показывающий, что следующая конструкция не доказывает, что класс контекстно-свободных языков замкнут относительно операции звезды. Пусть AA — КС-язык, порождаемый КС-грамматикой G=(V,Σ,R,S)G=(V, \Sigma , R, S). Добавим новое правило S→SSS \rightarrow S S и назовём получившуюся грамматику G′G^{\prime }. Предполагается, что эта грамматика порождает A∗A^{*}.

?
Задача 2.16

Покажите, что класс контекстно-свободных языков замкнут относительно регулярных операций: объединения, конкатенации и звезды.

?
Задача 2.17

Используя результаты упражнения 2.16, приведите ещё одно доказательство того, что каждый регулярный язык является контекстно-свободным, показав, как напрямую преобразовать регулярное выражение в эквивалентную контекстно-свободную грамматику.

?
§
Задача 2.18
?
(a)

Пусть CC — контекстно-свободный язык, а RR — регулярный язык. Докажите, что язык C∩RC \cap R контекстно-свободен.

(b)

Пусть A={w∣w∈{a,b,c}∗ и w содержит поровну букв a, b и c}A=\left\{ w \mid w \in \left\{ \mathrm{a}, \mathrm{b}, \mathrm{c}\right\}^{*}\text{ и }w\text{ содержит поровну букв a, b и c}\right\}. Используя пункт (a), покажите, что AA не является КС-языком.

Задача 2.19
  • Пусть КС-грамматика GG — следующая грамматика.
S→aS b∣ bY∣YaY→ bY∣aY∣ε \begin{aligned} S & \rightarrow \mathrm{a} S \mathrm{~ b} \mid \mathrm{~ b} Y \mid Y \mathrm{a} \\ Y & \rightarrow \mathrm{~ b} Y \mid \mathrm{a} Y \mid \varepsilon \end{aligned}

Дайте простое словесное описание L(G)L(G). Используя это описание, приведите КС-грамматику для L(G)‾\overline{L(G)} — дополнения L(G)L(G).

?
Задача 2.20

Пусть A/B={w∣wx∈A для некоторого x∈B}A / B=\left\{ w \mid w x \in A\text{ для некоторого }x \in B\right\}. Покажите, что если AA контекстно-свободен, а BB регулярен, то A/BA / B контекстно-свободен.

?
Задача 2.21
  • Пусть Σ={a,b}\Sigma =\left\{ \mathrm{a}, \mathrm{b}\right\}. Приведите КС-грамматику, порождающую язык строк, в которых букв a вдвое больше, чем букв b. Докажите, что ваша грамматика верна.
?
Задача 2.22
  • Пусть C={x#y∣x,y∈{0,1}∗ и x≠y}C=\left\{ x \# y \mid x, y \in \left\{ 0,1\right\}^{*} \text{ и } x \neq y\right\}. Покажите, что CC является контекстно-свободным языком.
?
Задача 2.23
  • Пусть D={xy∣x,y∈{0,1}∗,∣x∣=∣y∣, но x≠y}D=\left\{ x y \mid x, y \in \left\{ 0,1\right\}^{*}, \left|x\right|=\left|y\right|, \text{ но } x \neq y\right\}. Покажите, что DD является контекстно-свободным языком.
?
Задача 2.24
  • Пусть E={ai bj∣i≠j и 2i≠j}E=\left\{ \mathrm{a}^{i} \mathrm{~ b}^{j} \mid i \neq j \text{ и } 2 i \neq j\right\}. Покажите, что EE является контекстно-свободным языком.
?
Задача 2.25

Для произвольного языка AA пусть SUFFIX⁡(A)={v∣uv∈A для некоторой строки u}\operatorname {SUFFIX}(A)=\left\{ v \mid u v \in A\text{ для некоторой строки }u\right\}. Покажите, что класс контекстно-свободных языков замкнут относительно операции SUFFIX.

?
Задача 2.26

Покажите, что если GG — КС-грамматика в нормальной форме Хомского, то для любой строки w∈L(G)w \in L(G) длины n≥1n \geq 1 любой вывод ww требует ровно 2n−12 n-1 шагов.

?
Задача 2.27
  • Пусть G=(V,Σ,R,⟨G=(V, \Sigma , R,\langle STMT ⟩)\rangle ) — следующая грамматика.
⟨ STMT ⟩→⟨ ASSIGN ⟩∣⟨ IF-THEN ⟩∣⟨ IF-THEN-ELSE ⟩⟨ IF-THEN ⟩→ if condition then ⟨ STMT ⟩⟨ IF-THEN-ELSE ⟩→ if condition then ⟨ STMT ⟩ else ⟨ STMT ⟩⟨ ASSIGN ⟩→ a :=1Σ={ if , condition , then, else ,a:=1}V={⟨ STMT ⟩,⟨ IF-  THEN ⟩,⟨ IF-  THEN-ELSE ⟩,⟨ ASSIGN ⟩} \begin{aligned} & \langle \text{ STMT }\rangle \rightarrow \langle \text{ ASSIGN }\rangle \mid \langle \text{ IF-THEN }\rangle \mid \langle \text{ IF-THEN-ELSE }\rangle \\ & \langle \text{ IF-THEN }\rangle \rightarrow \text{ if condition then }\langle \text{ STMT }\rangle \\ & \langle \text{ IF-THEN-ELSE }\rangle \rightarrow \text{ if condition then }\langle \text{ STMT }\rangle \text{ else }\langle \text{ STMT }\rangle \\ & \langle \text{ ASSIGN }\rangle \rightarrow \text{ a }:=1 \\ & \Sigma =\left\{ \text{ if }, \text{ condition }, \text{ then, else }, \mathrm{a}:=1\right\} \\ & V=\left\{ \langle \text{ STMT }\rangle ,\langle \text{ IF- } \text{ THEN }\rangle ,\langle \text{ IF- } \text{ THEN-ELSE }\rangle ,\langle \text{ ASSIGN }\rangle \right\} \end{aligned}

GG — грамматика, естественно выглядящая как фрагмент языка программирования, но GG неоднозначна.

?
(a)

Покажите, что GG неоднозначна.

(b)

Приведите новую однозначную грамматику для того же языка.

Задача 2.28
  • Приведите однозначные КС-грамматики для следующих языков.
?
(a)

{w∣в каждом префиксе w число букв a не меньше числа букв b}\left\{ w \mid \text{в каждом префиксе } w \text{ число букв a не меньше числа букв b}\right\}

(b)

{w∣число букв a и число букв b в w равны}\left\{ w \mid \text{число букв a и число букв b в } w \text{ равны}\right\}

(c)

{w∣ число букв a в w не меньше числа букв b}\left\{ w \mid \text{ число букв a в }w\text{ не меньше числа букв b}\right\}

Задача 2.29
  • Покажите, что язык AA из упражнения 2.9 существенно неоднозначен.
?
Задача 2.30

Используя лемму о накачке, покажите, что следующие языки не являются контекстно-свободными.

?
(a)

{0n1n0n1n∣n≥0}\left\{ 0^{n} 1^{n} 0^{n} 1^{n} \mid n \geq 0\right\}

(b)

{0n#02n#03n∣n≥0}\left\{ 0^{n} \# 0^{2 n} \# 0^{3 n} \mid n \geq 0\right\}

(c)

{w#t∣w является подстрокой t, где w,t∈{a,b}∗}\left\{ w\# t \mid w \text{ является подстрокой } t, \text{ где } w, t \in \left\{ \mathrm{a}, \mathrm{b}\right\}^{*}\right\}

(d)

{t1#t2#⋯#tk∣k≥2, каждое ti∈{a,b}∗, и ti=tj для некоторых i≠j}\left\{ t_{1} \# t_{2} \# \cdots \# t_{k} \mid k \geq 2, \text{ каждое } t_{i} \in \left\{ \mathrm{a}, \mathrm{b}\right\}^{*}, \text{ и } t_{i}=t_{j} \text{ для некоторых } i \neq j\right\}

Задача 2.31

Пусть BB — язык всех палиндромов над {0,1}\left\{ 0,1\right\}, содержащих поровну нулей и единиц. Покажите, что BB не является контекстно-свободным.

?
Задача 2.32

Пусть Σ={1,2,3,4}\Sigma =\left\{ 1,2,3,4\right\} и C={w∈Σ∗∣в w число единиц равно числу двоек, а число троек равно числу четвёрок}C=\left\{ w \in \Sigma^{*} \mid \text{в } w \text{ число единиц равно числу двоек, а число троек равно числу четвёрок}\right\}. Покажите, что CC не является контекстно-свободным.

?
Задача 2.33
  • Покажите, что F={ai bj∣i=kj для некоторого положительного целого k}F=\left\{ \mathrm{a}^{i} \mathrm{~ b}^{j} \mid i=k j \text{ для некоторого положительного целого } k\right\} не является контекстно-свободным.
?
Задача 2.34

Рассмотрим язык B=L(G)B=L(G), где GG — грамматика из упражнения 2.13. Лемма о накачке для контекстно-свободных языков, теорема 2.34, утверждает существование длины накачки pp для BB. Каково минимальное значение pp, для которого работает лемма о накачке? Обоснуйте свой ответ.

?
Задача 2.35

Пусть GG — КС-грамматика в нормальной форме Хомского, содержащая bb переменных. Покажите, что если GG порождает некоторую строку, для которой существует вывод не менее чем из 2b2^{b} шагов, то L(G)L(G) бесконечен.

?
Задача 2.36

Приведите пример языка, который не является контекстно-свободным, но ведёт себя как КС-язык в лемме о накачке. Докажите, что ваш пример работает. (См. аналогичный пример для регулярных языков в задаче 1.54.)

?
Задача 2.37
  • Докажите следующую усиленную форму леммы о накачке, в которой обе части vv и yy должны быть непустыми при разбиении строки ss. Если AA — контекстно-свободный язык, то существует число kk, такое что для любой строки s∈As \in A длины не менее kk строку ss можно разбить на пять частей, s=uvxyzs=u v x y z, удовлетворяющих условиям:
?
(a)

для каждого i≥0i \geq 0, uvixyiz∈Au v^{i} x y^{i} z \in A,

(b)

v≠εv \neq \varepsilon и y≠εy \neq \varepsilon, и

(c)

∣vxy∣≤k\left|v x y\right| \leq k.

Задача 2.38

Обратитесь к задаче 1.41 за определением операции идеального перемешивания. Покажите, что класс контекстно-свободных языков не замкнут относительно идеального перемешивания.

?
Задача 2.39

Обратитесь к задаче 1.42 за определением операции перемешивания. Покажите, что класс контекстно-свободных языков не замкнут относительно перемешивания.

Задача 1.42: Для языков AA и BB перемешиванием AA и BB называется язык

{w∣w=a1b1⋯akbk, где a1⋯ak∈A и b1⋯bk∈B, каждое ai,bi∈Σ∗}. \left\{ w \mid w=a_{1} b_{1} \cdots a_{k} b_{k}, \text{ где } a_{1} \cdots a_{k} \in A \text{ и } b_{1} \cdots b_{k} \in B, \text{ каждое } a_{i}, b_{i} \in \Sigma ^{*}\right\} .
?
Задача 2.40
  • Будем говорить, что язык префиксно замкнут, если все префиксы каждой строки языка также принадлежат этому языку. Пусть CC — бесконечный, префиксно замкнутый, контекстно-свободный язык. Покажите, что CC содержит бесконечное регулярное подмножество.
?
Задача 2.41
  • Вспомните определения NOPREFIX(A)N O P R E F I X(A) и NOEXTEND(A)N O E X T E N D(A) из задачи 1.40.
?
(a)

Покажите, что класс КС-языков не замкнут относительно операции NOPREFIX.

(b)

Покажите, что класс КС-языков не замкнут относительно операции NOEXTEND.

Задача 2.42
  • Пусть Y={w∣w=t1#t2#⋯#tk при k≥0, каждое ti∈1∗, и ti≠tj, как только i≠j}Y=\left\{ w \mid w=t_{1} \# t_{2} \# \cdots \# t_{k} \text{ при } k \geq 0, \text{ каждое } t_{i} \in 1^{*}, \text{ и } t_{i} \neq t_{j}, \text{ как только } i \neq j\right\}. Здесь Σ={1,#}\Sigma =\left\{ 1, \# \right\}. Докажите, что YY не является контекстно-свободным.
?
Задача 2.43

Для строк ww и tt будем писать w=∘tw \stackrel{\circ }{=} t, если символы ww являются перестановкой символов tt. Иными словами, w=∘tw \stackrel{\circ }{=} t, если tt и ww содержат одни и те же символы в одинаковых количествах, но, возможно, в другом порядке. Для произвольной строки ww определим SCRAMBLE⁡(w)={t∣t=∘w}\operatorname {SCRAMBLE}(w)=\left\{ t \mid t \stackrel{\circ }{=} w\right\}. Для произвольного языка AA положим SCRAMBLE⁡(A)={t∣t∈SCRAMBLE⁡(w) для некоторого w∈A}\operatorname {SCRAMBLE}(A)=\left\{ t \mid t \in \operatorname {SCRAMBLE}(w)\text{ для некоторого }w \in A\right\}.

?
(a)

Покажите, что если Σ={0,1}\Sigma =\left\{ 0,1\right\}, то SCRAMBLE регулярного языка контекстно-свободен.

(b)

Что происходит в пункте (a), если Σ\Sigma содержит три или более символов? Докажите свой ответ.

Задача 2.44

Если AA и BB — языки, определим A⋄B={xy∣x∈A и y∈B и ∣x∣=∣y∣}A \diamond B=\left\{ x y \mid x \in A\text{ и }y \in B\text{ и }\left|x\right|=\left|y\right|\right\}. Покажите, что если AA и BB — регулярные языки, то A⋄BA \diamond B — КС-язык.

?
Задача 2.45
  • Пусть A={wtwR∣w,t∈{0,1}∗ и ∣w∣=∣t∣}A=\left\{ w t w^{\mathcal{R}} \mid w, t \in \left\{ 0,1\right\}^{*} \text{ и } \left|w\right|=\left|t\right|\right\}. Докажите, что AA не является КС-языком.
?
Задача 2.46

Рассмотрим следующую КС-грамматику GG:

S→SS∣TT→aT b∣ab \begin{aligned} & S \rightarrow S S \mid T \\ & T \rightarrow \mathrm{a} T \mathrm{~ b} \mid \mathrm{ab} \end{aligned}

Опишите L(G)L(G) и покажите, что GG неоднозначна. Приведите однозначную грамматику HH, для которой L(H)=L(G)L(H)=L(G), и наметьте доказательство того, что HH однозначна.

?
Задача 2.47

Пусть Σ={0,1}\Sigma =\left\{ 0,1\right\}, и пусть BB — совокупность строк, содержащих хотя бы одну единицу во второй половине. Иными словами, B={uv∣u∈Σ∗,v∈Σ∗1Σ∗ и ∣u∣≥∣v∣}B=\left\{ u v \mid u \in \Sigma^{*}, v \in \Sigma^{*} 1 \Sigma^{*} \text{ и } \left|u\right| \geq \left|v\right|\right\}.

?
(a)

Постройте МП-автомат, распознающий BB.

(b)

Приведите КС-грамматику, порождающую BB.

Задача 2.48

Пусть Σ={0,1}\Sigma =\left\{ 0,1\right\}. Пусть C1C_{1} — язык всех строк, содержащих единицу в своей средней трети. Пусть C2C_{2} — язык всех строк, содержащих две единицы в своей средней трети. Так, C1={xyz∣x,z∈Σ∗,y∈Σ∗1Σ∗, где ∣x∣=∣z∣≥∣y∣}C_{1}=\left\{ x y z \mid x, z \in \Sigma^{*}, y \in \Sigma^{*} 1 \Sigma^{*}, \text{ где } \left|x\right|=\left|z\right| \geq \left|y\right|\right\}, а C2={xyz∣x,z∈Σ∗,y∈Σ∗1Σ∗1Σ∗, где ∣x∣=∣z∣≥∣y∣}C_{2}=\left\{ x y z \mid x, z \in \Sigma^{*}, y \in \Sigma^{*} 1 \Sigma^{*} 1 \Sigma^{*}, \text{ где } \left|x\right|=\left|z\right| \geq \left|y\right|\right\}.

?
(a)

Покажите, что C1C_{1} — КС-язык.

(b)

Покажите, что C2C_{2} не является КС-языком.

Задача 2.49
  • Мы определили вращательное замыкание языка AA как RC(A)={yx∣xy∈A}R C(A)=\left\{ y x \mid x y \in A\right\}. Покажите, что класс КС-языков замкнут относительно вращательного замыкания.
?
Задача 2.50
  • Мы определили CUT языка AA как CUT(A)={yxz∣xyz∈A}C U T(A)=\left\{ y x z \mid x y z \in A\right\}. Покажите, что класс КС-языков не замкнут относительно операции CUT.
?
Задача 2.51

Покажите, что каждая ДКС-грамматика (DCFG) является однозначной КС-грамматикой.

?
Задача 2.52

Покажите, что каждая ДКС-грамматика порождает беспрефиксный язык.

?
Задача 2.53
  • Покажите, что класс ДКС-языков (DCFL) не замкнут относительно следующих операций:
?
(a)

Объединение

(b)

Пересечение

(c)

Конкатенация

(d)

Звезда

(e)

Обращение

Задача 2.54

Пусть GG — следующая грамматика:

S→T−1T→TaT b∣T bTa∣ε \begin{aligned} & S \rightarrow T-\mathbf{1} \\ & T \rightarrow T \mathrm{a} T \mathrm{~ b} \mid T \mathrm{~ b} T \mathrm{a} \mid \boldsymbol {\varepsilon } \end{aligned}
?
(a)

Покажите, что L(G)={w⊣∣w содержит поровну букв a и b}L(G)=\left\{ w \dashv \mid w\text{ содержит поровну букв a и b}\right\}. Используйте доказательство индукцией по длине ww.

(b)

Используя DKD K-тест, покажите, что GG является ДКС-грамматикой.

(c)

Опишите ДМП-автомат, распознающий L(G)L(G).

Задача 2.55

Пусть G1G_{1} — следующая грамматика, которую мы ввели в примере 2.45. Используя DKD K-тест, покажите, что G1G_{1} не является ДКС-грамматикой.

R→S∣TS→aS b∣abT→aTbb∣abb \begin{aligned} & R \rightarrow S \mid T \\ & S \rightarrow \mathrm{a} S \mathrm{~ b} \mid \mathrm{ab} \\ & T \rightarrow \mathrm{a} T \mathrm{bb} \mid \mathrm{abb} \end{aligned}
?
Задача 2.56
  • Пусть A=L(G1)A=L\left(G_{1}\right), где G1G_{1} определена в задаче 2.55. Покажите, что AA не является ДКС-языком. (Подсказка: предположите, что AA — ДКС-язык, и рассмотрите его ДМП-автомат PP. Измените PP так, чтобы его входной алфавит стал {a,b,c}\left\{ \mathrm{a}, \mathrm{b}, \mathrm{c}\right\}. Когда он впервые попадает в допускающее состояние, пусть он с этого момента считает буквы c буквами b во входной строке. Какой язык будет допускать изменённый PP?)
?
Задача 2.57
  • Пусть B={ai bjck∣i,j,k≥0, и i=j или i=k}B=\left\{ \mathrm{a}^{i} \mathrm{~ b}^{j} \mathrm{c}^{k} \mid i, j, k \geq 0, \text{ и } i=j \text{ или } i=k\right\}. Докажите, что BB не является ДКС-языком.
?
Задача 2.58
  • Пусть C={wwR∣w∈{0,1}∗}C=\left\{ w w^{\mathcal{R}} \mid w \in \left\{ 0,1\right\}^{*}\right\}. Докажите, что CC не является ДКС-языком. (Подсказка: предположим, что когда некоторый ДМП-автомат PP запущен в состоянии qq с символом xx на вершине стека, PP никогда не опускает стек ниже xx, независимо от того, какую входную строку PP читает с этого момента. В таком случае содержимое стека PP в этот момент не может влиять на его дальнейшее поведение, так что дальнейшее поведение PP может зависеть только от qq и xx.)
?
Задача 2.59
  • Если запретить ε\varepsilon-правила в КС-грамматиках, можно упростить DKD K-тест. В упрощённом тесте достаточно проверить, что у каждого допускающего состояния DKD K есть ровно одно правило. Докажите, что КС-грамматика без ε\boldsymbol {\varepsilon }-правил проходит упрощённый DKD K-тест тогда и только тогда, когда она является ДКС-грамматикой.
?