3.1

Контекстно-свободные грамматики

[18/50%]
Показать
LaTeX
Пример 3.1

Рассмотрим контекстно-свободную грамматику G1=({S},{0,1},{S→ε, S→0S1},S)G_{1}=(\left\{ S\right\} ,\left\{ 0,1\right\} ,\left\{ S \rightarrow \varepsilon \text{, }S \rightarrow 0 S 1\right\} , S). Чему равен язык L(G1)L\left(G_{1}\right)?

?
Пример 3.2

Рассмотрим контекстно-свободную грамматику G2=({S,A,B},{a,b},RG_{2}=(\left\{ S, A, B\right\} , \left\{ a, b\right\} , R, SS), где RR состоит из следующих правил:

S⟶ABA,A⟶a∣bb,B⟶bS∣ε. S \longrightarrow A B A, \quad A \longrightarrow a \mid b b, \quad B \longrightarrow b S \mid \varepsilon .

Чему равен язык L(G2)L\left(G_{2}\right)?

?
Пример 3.3

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

L={0n12n∣n≥0} L=\left\{ 0^{n} 1^{2 n} \mid n \geq 0\right\}
?
Пример 3.4

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

L={x∈{0,1}∗∣x=xR} L=\left\{ x \in \left\{ 0,1\right\} ^{*} \mid x=x^{R}\right\}
?
Пример 3.5

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

L={x∈{a,b}∗∣ каждый префикс строки x содержит не меньше символов a, чем символов b}. L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid \text{ каждый префикс строки } x \text{ содержит не меньше символов } a \text{, чем символов } b\right\} .
?
Пример 3.6

(Повторное рассмотрение) Найдите контекстно-свободную грамматику, порождающую

L={x∈{a,b}∗∣x has as many a ’s as b ’s }. L=\left\{ x \in \left\{ a, b\right\} ^{*} \mid x \text{ has as many } a \text{ 's as } b \text{ 's }\right\} .
?
Пример 3.8

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

Рисунок 3.1: ДКА для примера 3.8.Рисунок 3.1: ДКА для примера 3.8.

?
Пример 3.9

Постройте контекстно-свободную грамматику, порождающую регулярный язык, допускаемый НКА на рисунке 3.2(a).

Рисунок 3.2: Два НКА для примера 3.9.Рисунок 3.2: Два НКА для примера 3.9.

?
Пример 3.11

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

S⟶01A∣00B∣11,A⟶0B∣1C∣00,B⟶0A∣1B,C⟶01S. \begin{array}{ll} S \longrightarrow 01 A \mid 00 B \mid 11, & A \longrightarrow 0 B \mid 1 C \mid 00, \\ B \longrightarrow 0 A \mid 1 B, & C \longrightarrow 01 S. \end{array}

Постройте НКА, допускающий L(G)L(G).

?
Задача 3.1.1

Опишите словами и/или с помощью регулярных выражений язык, порождаемый каждой из следующих контекстно-свободных грамматик:

?
(a)

S⟶aSa∣bSb∣a∣bS \longrightarrow a S a \mid b S b \mid a \mid b.

(b)

S⟶aS∣bS∣εS \longrightarrow a S \mid b S \mid \varepsilon.

(c)

S⟶aS∣Sb∣aS \longrightarrow a S \mid S b \mid a.

(d)

S⟶SS∣a∣bS \longrightarrow S S \mid a \mid b.

(e)

S⟶SS∣aSb∣εS \longrightarrow S S \mid a S b \mid \varepsilon.

(f)

S⟶aS∣aSbS∣εS \longrightarrow a S \mid a S b S \mid \varepsilon.

Задача 3.1.2

Покажите, что ни одна строка языка L(G)L(G) не содержит подстроку bab a, где GG — контекстно-свободная грамматика со следующими правилами:

S⟶aS∣bT∣a,T⟶bT∣b. S \longrightarrow a S \mid b T \mid a, \quad T \longrightarrow b T \mid b.
?
Задача 3.1.3

Покажите, что в каждой строке языка L(G)L(G) символов aa больше, чем символов bb, где GG — грамматика со следующими правилами:

S⟶Sa∣bSS∣SSb∣SbS∣a. S \longrightarrow S a \mid b S S \mid S S b \mid S b S \mid a.
?
Задача 3.1.4
?
(a)

Покажите, что следующая грамматика не порождает язык {x∈{0,1}∗∣x содержит столько же 0, сколько и 1 }\left\{ x \in \left\{ 0,1\right\}^{*} \mid x\text{ содержит столько же 0, сколько и 1 }\right\} :

S⟶0S1∣01S∣1S0∣10S∣S01∣S10∣ε. S \longrightarrow 0 S 1 \mid 01 S \mid 1 S 0 \mid 10 S \mid S 01 \mid S 10 \mid \varepsilon .
(b)

Покажите, что следующая грамматика порождает язык {x∈{0,1}∗∣x содержит столько же 0, сколько и 1 }\left\{ x \in \left\{ 0,1\right\}^{*} \mid x\text{ содержит столько же 0, сколько и 1 }\right\} :

S⟶SS∣0S1∣1S0∣ε. S \longrightarrow S S \mid 0 S 1 \mid 1 S 0 \mid \varepsilon .
Задача 3.1.5

Для каждого из следующих регулярных языков постройте праволинейную грамматику и леволинейную грамматику для него:

?
(a)

10(0+1)∗1010(0+1)^{*} 10.

(b)

((0+11)∗10)∗\left((0+11)^{*} 10\right)^{*}.

(c)

Множество двоичных строк, не содержащих подстроку 000.

(d)

Множество двоичных строк, у которых суффикс длины десять начинается с 000.

Задача 3.1.6

Для каждой из следующих контекстно-свободных грамматик GG постройте НКА, допускающий L(G)L(G) :

?
(a)

S⟶baS∣bS∣εS \longrightarrow b a S \mid b S \mid \varepsilon.

(b)

S⟶Sab∣Sb∣ab∣bS \longrightarrow S a b \mid S b \mid a b \mid b.

(c)

S⟶A∣B,A⟶baA∣bA∣ε,B⟶Bab∣Bb∣ab∣bS \longrightarrow A \mid B, A \longrightarrow b a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

(d)

S⟶AB,A⟶baA∣bA∣ε,B⟶Bab∣Bb∣ab∣bS \longrightarrow A B, A \longrightarrow b a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

(e)

S⟶AA∣BB,A⟶baA∣bA∣ε,B⟶Bab∣Bb∣ab∣bS \longrightarrow A A \mid B B, A \longrightarrow b a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

Задача 3.1.7

Для каждой из следующих контекстно-свободных грамматик GG найдите эквивалентную регулярную грамматику:

?
(a)

S⟶AabB,A⟶aA∣bA∣ε,B⟶Bab∣Bb∣ab∣bS \longrightarrow A a b B, A \longrightarrow a A \mid b A \mid \varepsilon , B \longrightarrow B a b \mid B b \mid a b \mid b.

(b)

S⟶AB,A⟶Aa∣Ab∣a∣b,B⟶aB∣abB∣εS \longrightarrow A B, A \longrightarrow A a \mid A b \mid a \mid b, B \longrightarrow a B \mid a b B \mid \varepsilon.

(c)

S⟶AA∣B,A⟶aAa∣bAb∣a∣b,B⟶aB∣bB∣εS \longrightarrow A A \mid B, A \longrightarrow a A a \mid b A b \mid a \mid b, B \longrightarrow a B \mid b B \mid \varepsilon.

(d)

S⟶AB,A⟶aAa∣bAb∣a∣b,B⟶aB∣bB∣εS \longrightarrow A B, A \longrightarrow a A a \mid b A b \mid a \mid b, B \longrightarrow a B \mid b B \mid \varepsilon.

Задача 3.1.8

Контекстно-свободная грамматика G=(V,Σ,R,S)G=(V, \Sigma , R, S) называется линейной, если каждое её правило имеет вид A→xBA \rightarrow x B, или A→BxA \rightarrow B x, или A→xA \rightarrow x, где A,B∈VA, B \in V и x∈Σ∗x \in \Sigma^{*}. Покажите, что язык, порождаемый линейной грамматикой, не обязательно регулярен.

?
Задача 3.1.9

Для каждого из следующих языков LL постройте контекстно-свободную грамматику, порождающую LL :

?
(a)

{anbm∣m≥n,m−n чётно }\left\{ a^{n} b^{m} \mid m \geq n, m-n\text{ чётно }\right\}.

(b)

{xcn∣x∈{a,b}∗,#a(x)=n или #b(x)=n}\left\{ x c^{n} \mid x \in \left\{ a, b\right\}^{*}, \#_{a}(x)=n\text{ или }\#_{b}(x)=n\right\}, где #a(x)\#_{a}(x) обозначает число вхождений символа aa в строку xx.

(c)

{xcn∣x∈{a,b}∗,#a(x)+#b(x)≥n}\left\{ x c^{n} \mid x \in \left\{ a, b\right\}^{*}, \#_{a}(x)+\#_{b}(x) \geq n\right\}.