|
1 | | -\chapter[Многокомпонентные контекстно-свободные языки]{Многокомпонентные контекстно-свободные языки\footnote{Мы дадим лишь базовые определения и приведём краткий обзор данного класса. В качестве отправной точки для более детального изучения можно порекомендовать материалы, подготовдленные Сильваном Салвати (Sylvain Salvati): \url{https://www.labri.fr/perso/salvati/downloads/cours/esslli/}}} |
2 | | - |
3 | | -\textit{Многокомпонентны контекстно-свободные языки} (и соответствующий класс грамматик) --- это строгое расширение контекстно-свободных языков (грамматик), обладающее рядом свойств !!! |
| 1 | +\chapter[Многокомпонентные контекстно-свободные языки]{Многокомпонентные контекстно-свободные языки\footnotemark} |
| 2 | +\footnotetext{Мы дадим лишь базовые определения и приведём краткий обзор данного класса. В качестве отправной точки для более детального изучения можно порекомендовать материалы, подготовленные Сильваном Салвати (Sylvain Salvati): \url{https://www.labri.fr/perso/salvati/downloads/cours/esslli/}} |
4 | 3 |
|
5 | 4 | \begin{definition} |
6 | 5 | \textit{m-MCFG(r)} это четвёрка $\langle \Sigma, N, S, P \rangle$ |
|
13 | 12 | A(s_1,\ldots,s_k) \leftarrow B_1(x_1^1,\ldots,x_{k_1}^1), \ldots, B_n(x_1^n,\ldots,x_{k_n}^n) |
14 | 13 | $$ |
15 | 14 | \begin{itemize} |
16 | | - \item $A$ --- нетерминал ранга $k$, $B_i$ --- нетерминалы ранга $k_i$, $n \leq r$ |
| 15 | + \item $A$ --- нетерминал ранга $k$, $B_i$ --- нетерминалы ранга $k_i$, $n \leq r$; |
17 | 16 | \item Все $x^i_j$ попарно различны (переменные) |
18 | | - \item $s_i \in (\Sigma \cup X)^*, X = \bigcup_{i=1}^n \bigcup_{j=1}^{k_i} {x^i_j}$ |
| 17 | + \item Строки $s_i \in (\Sigma \cup X)^*, X = \bigcup_{i=1}^n \bigcup_{j=1}^{k_i} {x^i_j}$ |
| 18 | + \item Каждая $x^i_j$ встречается не более одного раза в последовательности $s_1,\ldots, s_k$. Если допустить несколько вхождений, то это PMCFG. |
19 | 19 | \end{itemize} |
20 | 20 | \end{itemize} |
21 | | - \end{definition} |
| 21 | +\end{definition} |
| 22 | + |
| 23 | +MCFG позволяет правилам грамматики оперировать несколькими компонентами одновременно. Нетерминалы в MCFG могут выводить не одну строку, а кортеж из нескольких строк. |
| 24 | +Также, можно произвольно комбинировать компоненты — переставлять их, дублировать, вставлять между ними терминалы. |
| 25 | + |
| 26 | +Приведём примеры многокомпонентных контекстно-свободных грамматик. |
| 27 | +Для начала рассмотрим грамматики для известных нам контекстно-свободных языков и перепишем их в MCFG грамматику: |
22 | 28 |
|
23 | | -Приведём примеры многокомпонентных контекстно-свободных грамматик. Для начал рассмотрим грамматики для известных нам контекстно-свободных языков: |
24 | 29 | \begin{itemize} |
25 | | - \item язык вложенных скобок (\ref{grm:nestedbrs_cfg} и \ref{grm:nestedbrs_mcfg}, соответственно);\\ |
26 | | - \begin{minipage}[t]{0.4\textwidth} |
27 | | - \begin{align}\label{grm:nestedbrs_cfg} |
28 | | - S &\to a S b \nonumber \\ |
29 | | - S &\to \varepsilon |
30 | | - \end{align} |
31 | | - \end{minipage} |
32 | | - ~ |
33 | | - \begin{minipage}[t]{0.2\textwidth} |
34 | | - \end{minipage} |
35 | | - ~ |
36 | | - \begin{minipage}[t]{0.4\textwidth} |
37 | | - \begin{align}\label{grm:nestedbrs_mcfg} |
38 | | - S(axb) & \leftarrow S(x) \nonumber \\ |
39 | | - S(\varepsilon) & \leftarrow |
40 | | - \end{align} |
41 | | - \end{minipage} |
42 | | - \item язык Дика на одном типе скобок(\ref{grm:d1_cfg} и \ref{grm:d1_mcfg}, соответственно).\\ |
43 | | - \begin{minipage}[t]{0.4\textwidth} |
44 | | - \begin{align}\label{grm:d1_cfg} |
45 | | - S &\to a S b S \nonumber \\ |
46 | | - S &\to \varepsilon |
47 | | - \end{align} |
48 | | - \end{minipage} |
49 | | - ~ |
50 | | - \begin{minipage}[t]{0.2\textwidth} |
51 | | - \end{minipage} |
52 | | - ~ |
53 | | - \begin{minipage}[t]{0.4\textwidth} |
54 | | - \begin{align}\label{grm:d1_mcfg} |
55 | | - S(ax_1bx_2) & \leftarrow S(x_1), S(x_2) \nonumber \\ |
56 | | - S(\varepsilon) & \leftarrow |
57 | | - \end{align} |
58 | | - \end{minipage} |
59 | | - |
60 | | -\end{itemize} |
| 30 | + \item \textbf{Язык вложенных скобок} |
61 | 31 |
|
62 | | -Теперь рассмотрим грамматику для языка $L = \{a^nc^mb^nd^m \mid n \in \mathbb{N}, m \in \mathbb{N} \}$, не являющегося контекстно-свободным: |
63 | 32 | \begin{align*} |
64 | | - S(x_1 y_1 x_2 y_2) & \leftarrow P(x1,x2),Q(y_1,y_2) \\ |
65 | | - P(ax_1, bx_2) & \leftarrow P(x_1,x_2) \\ |
66 | | - P(\varepsilon,\varepsilon) &\leftarrow \\ |
67 | | - Q(cx_1, dx_2) & \leftarrow Q(x_1,x_2) \\ |
68 | | - Q(\varepsilon,\varepsilon) &\leftarrow |
| 33 | + S &\rightarrow aSb &\quad& S(axb) \leftarrow S(x) \\ |
| 34 | + S &\rightarrow \varepsilon &\quad& S(\varepsilon) \leftarrow |
69 | 35 | \end{align*} |
70 | | - |
71 | 36 |
|
72 | | - |
| 37 | + \item \textbf{Язык Дика на одном типе скобок} |
73 | 38 |
|
74 | | - |
75 | | - Расширения MCFG |
76 | | - \begin{enumerate} |
77 | | - \item \textbf{PMCFG} (parallel MCFG) |
78 | | - $$ |
79 | | - A(x, ax) \leftarrow B(x) |
80 | | - $$ |
81 | | - |
82 | | - \item |
83 | | - $$ |
84 | | - A(x) \leftarrow B(x),C(x) |
85 | | - $$ |
86 | | - \item \textbf{simpleLMG} |
87 | | - $$ |
88 | | - A(x, x) \leftarrow B(x),C(x) |
89 | | - $$ |
90 | | - \end{enumerate} |
| 39 | + \begin{align*} |
| 40 | + S &\rightarrow aSbS &\quad& S(ax_1bx_2) \leftarrow S(x_1), S(x_2) \\ |
| 41 | + S &\rightarrow \varepsilon &\quad& S(\varepsilon) \leftarrow |
| 42 | + \end{align*} |
| 43 | + |
| 44 | + В MCFG-варианте ранг $S$ равен двум, то есть $S$ возвращает две компоненты. Такая грамматика записывается как 2-MCFG. |
| 45 | + |
| 46 | +\end{itemize} |
| 47 | + |
| 48 | + |
| 49 | +Теперь рассмотрим грамматику для языка $L = \{a^nc^mb^nd^m \mid n \in \mathbb{N}, m \in \mathbb{N} \}$, не являющегося контекстно-свободным, но выразимого в 2-MCFG(2) грамматике : |
| 50 | +\begin{align*} |
| 51 | + S(x_1 y_1 x_2 y_2) & \leftarrow P(x1,x2),Q(y_1,y_2) \\ |
| 52 | + P(ax_1, bx_2) & \leftarrow P(x_1,x_2) \\ |
| 53 | + P(\varepsilon,\varepsilon) &\leftarrow \\ |
| 54 | + Q(cx_1, dx_2) & \leftarrow Q(x_1,x_2) \\ |
| 55 | + Q(\varepsilon,\varepsilon) &\leftarrow |
| 56 | +\end{align*} |
| 57 | + |
| 58 | + |
| 59 | +\section{Расширения MCFG} |
| 60 | + |
| 61 | +Как было сказано раннее, в MCFG каждая переменная в левой части правила встречается ровно один раз в его правой части, и наоборот. |
| 62 | +Если мы откажемся от этого ограничения, мы получим более общие грамматики. |
| 63 | + |
| 64 | +\begin{enumerate} |
| 65 | + \item \textbf{PMCFG} (Parallel Multiple Context-Free Grammar). |
| 66 | + |
| 67 | + PMCFG задает некоторое ограничение над MCFG. |
| 68 | + В правилах PMCFG компоненты должны комбинироваться параллельно, без перемешивания между разными нетерминалами: $i$-й компонент результата формируется только из $i$-х компонентов правой части. |
| 69 | + |
| 70 | + $$ |
| 71 | + A(xy, xz) \leftarrow B(x), C(y, z) |
| 72 | + $$ |
| 73 | + |
| 74 | + \item \textbf{sLMG (Simple LMG, Simple Literal Movement Grammar)}. |
91 | 75 |
|
92 | | - $MCFL \varsubsetneq PMCFL \varsubsetneq simpleLMG = P$ |
93 | | - |
94 | | - $\{a^{2^n} \mid n\geq 0\} \in PMCFL - MCFL $ |
95 | | - |
96 | | - $S(xx) \leftarrow S(x)$ |
97 | | - |
98 | | - $S(a) \leftarrow $ |
| 76 | + sLMG является ограниченным подклассом LMG (Literal Movement Grammar). |
| 77 | + Общее определение LMG допускает любую комбинацию переменных и терминалов в компонентах левой и правой части правила. |
| 78 | + LMG являются грамматическими формализмами, основанными на предикатах над строковыми кортежами и расширяют класс контекстно-свободных грамматик. |
99 | 79 |
|
100 | | - Разновидности MCFG |
| 80 | + Предикатом будем называть синтаксическую единицу вида $A(\alpha_1, \alpha_2, ..., \alpha_n)$, где A —-- нетерминальный символ (имя предиката), |
| 81 | + $\alpha_1, \alpha_2, ..., \alpha_n$ --- аргументы (последовательности терминалов и переменных). |
| 82 | + |
| 83 | + Правила (так же называемые клаузы (clauses)) в такой грамматике имеют вид $\varphi \leftarrow \psi_1, \psi_2, ..., \psi_m$, где $\phi$ --- предикат в левой части (голова), |
| 84 | + $\psi_1, \psi_2, ..., \psi_m$ --- последовательность предикатов в правой части (тело). Клауза может быть инстанцироваться (т.е конкретные значения будут подставлены в аргументы) путем замены каждой переменной в клаузе на строку. |
| 85 | + \\ |
| 86 | + \textbf{Simple LMG} — это подкласс LMG, где каждая клауза (правило) должна удовлетворять трём синтаксическим ограничениям: |
101 | 87 | \begin{itemize} |
102 | | - \item \textbf{Неудаляющая} --- $\forall i \in \{i,\ldots,n\}, j\in \{1,\ldots,k_i\} \ x^i_j \text{ используется в } s_1,\ldots,s_k $ |
103 | | - \item \textbf{Непереставляющая} --- $\forall i \in \{i,\ldots,n\}, j,k\in \{1,\ldots,k_i\}, \text{если} j < k, \text{ то } x^i_j \text{ встречается в } s_1,\ldots,s_k \text{ перед } x^i_k$ |
104 | | - \item \textbf{Well-nested} --- неудаляющая, непереставляющая и |
105 | | - \begin{align*} |
106 | | - &\forall i,i' \in \{i,\ldots,n\}, i\neq i', \\ |
107 | | - &j\in \{1,\ldots,k_i-1\}, j\in \{1,\ldots,k_{i'}-1\},\\ |
108 | | - &s_1\cdots s_k \notin (\Sigma \cup X)^* x^i_j (\Sigma \cup X)^* x^{i'}_{j'} (\Sigma \cup X)^* x^i_{j+1} (\Sigma \cup X)^* x^{i'}_{j'+1}(\Sigma \cup X)^* |
109 | | - \end{align*} |
| 88 | + \item Non-combinatorial (некомбинаторность). Аргументы каждого $\psi_i$ должны быть переменными. |
| 89 | + \item Bottom-up nonerasing (восходящая неудаляемость). Все переменные из каждого $\psi_i$ также должны встречаться в $\varphi$. Это означает, что правая часть не может вводить новые переменные —-- все переменные должны "приходить" из левой части. |
| 90 | + \item Bottom-up linear (восходящая линейность). Ни одна переменная не встречается в $\varphi$ более одного раза. |
110 | 91 | \end{itemize} |
| 92 | +\end{enumerate} |
111 | 93 |
|
112 | | - Пример well-nested MCFG |
113 | | - \begin{itemize} |
114 | | - %\item[\faCheck] [\faTimes] |
115 | | - \item[\faCheck] $A(\highlight[pink]{x_1},\highlight{z_1,z_2},\highlight[pink]{x_2},\highlight[green]{y_1,y_2,y_3},\highlight[pink]{x_3}) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$ |
116 | | - \item[\faTimes] $A(\highlight{z_1},\highlight[pink]{x_1},\highlight[green]{y_1},\highlight[pink]{x_2},\highlight{z_2},\highlight[green]{y_2},\highlight[pink]{x_3},\highlight[green]{y_3}) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$ |
117 | | - \end{itemize} |
| 94 | +$MCFL \varsubsetneq PMCFL \varsubsetneq simpleLMG = P$ |
118 | 95 |
|
119 | | - \begin{theorem}[genaral MCFG] |
120 | | - \begin{align*} |
121 | | - &\forall L \in \text{m-MCFG } \exists n \geq 1 \ \underline{\boldsymbol{\exists} z} \in L (|z| \geq n) \\ |
122 | | - &\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\ |
123 | | - &\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L |
124 | | - \end{align*} |
125 | | - \end{theorem} |
| 96 | +$\{a^{2^n} \mid n\geq 0\} \in PMCFL - MCFL $ |
126 | 97 |
|
127 | | - \begin{theorem}[well-nested MCFG] |
128 | | - \begin{align*} |
129 | | - &\forall L \in \text{m-wnMCFG } \exists n \geq 1 \ \underline{\boldsymbol{\forall} z} \in L (|z| \geq n) \\ |
130 | | - &\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\ |
131 | | - &\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L |
132 | | - \end{align*} |
133 | | - \end{theorem} |
| 98 | +\section{Разновидности MCFG} |
| 99 | +\begin{itemize} |
| 100 | + \item \textbf{Неудаляющая} --- $\forall i \in \{i,\ldots,n\}, j\in \{1,\ldots,k_i\} \ x^i_j \text{ используется в } s_1,\ldots,s_k $ |
| 101 | + \item \textbf{Непереставляющая} --- $\forall i \in \{i,\ldots,n\}, j,k\in \{1,\ldots,k_i\}, \text{если} j < k, \text{ то } x^i_j \text{ встречается в } s_1,\ldots,s_k \text{ перед } x^i_k$ |
| 102 | + \item \textbf{Well-nested} --- неудаляющая, непереставляющая и |
| 103 | + \begin{align*} |
| 104 | + &\forall i,i' \in \{i,\ldots,n\}, i\neq i', \\ |
| 105 | + &j\in \{1,\ldots,k_i-1\}, j\in \{1,\ldots,k_{i'}-1\},\\ |
| 106 | + &s_1\cdots s_k \notin (\Sigma \cup X)^* x^i_j (\Sigma \cup X)^* x^{i'}_{j'} (\Sigma \cup X)^* x^i_{j+1} (\Sigma \cup X)^* x^{i'}_{j'+1}(\Sigma \cup X)^* |
| 107 | + \end{align*} |
| 108 | +\end{itemize} |
| 109 | + |
| 110 | +Пример Well-nested MCFG |
| 111 | +\begin{itemize} |
| 112 | + \item[\faCheck] $A(x_1,z_1,z_2,x_2,y_1,y_2,y_3,x_3) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$ |
| 113 | + \item[\faTimes] $A(z_1,x_1,y_1,x_2,z_2,y_2,x_3,y_3) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$ |
| 114 | +\end{itemize} |
| 115 | + |
| 116 | +\begin{theorem}[Genaral MCFG] |
| 117 | + \begin{align*} |
| 118 | + &\forall L \in \text{m-MCFG } \exists n \geq 1 \ \underline{\boldsymbol{\exists} z} \in L (|z| \geq n) \\ |
| 119 | + &\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\ |
| 120 | + &\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L |
| 121 | + \end{align*} |
| 122 | +\end{theorem} |
| 123 | + |
| 124 | +\begin{theorem}[Well-nested MCFG] |
| 125 | + \begin{align*} |
| 126 | + &\forall L \in \text{m-wnMCFG } \exists n \geq 1 \ \underline{\boldsymbol{\forall} z} \in L (|z| \geq n) \\ |
| 127 | + &\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\ |
| 128 | + &\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L |
| 129 | + \end{align*} |
| 130 | +\end{theorem} |
| 131 | + |
| 132 | +\section{Иерархии внутри MCFL} |
| 133 | + |
| 134 | +\begin{theorem} |
| 135 | +$(m*(k-1))$-$MCFL(r-k) \subseteq m$-$MCFL(r) $ если $1 \leq k \leq r - 2$ |
| 136 | +\end{theorem} |
134 | 137 |
|
135 | | - Иерархии внутри MCFL |
136 | | - \begin{theorem} |
137 | | - $(m*(k-1))$-$MCFL(r-k) \subseteq m$-$MCFL(r) $ если $1 \leq k \leq r - 2$ |
138 | | - \end{theorem} |
139 | | - |
140 | | - \begin{theorem}[Seki et al] |
141 | | - $L_{m+1} = \{a_1^nb_1^n\cdots a_{m+1}^n b_{m+1}^n \mid n\in \mathbb{N}\}$ является $(m+1)$-$MCFL(1)$, но не является $m$-$MCFL(r)$ ни для какого $r$ |
142 | | - \end{theorem} |
| 138 | +\begin{theorem}[Seki et al] |
| 139 | +$L_{m+1} = \{a_1^nb_1^n\cdots a_{m+1}^n b_{m+1}^n \mid n\in \mathbb{N}\}$ является $(m+1)$-$MCFL(1)$, но не является $m$-$MCFL(r)$ ни для какого $r$ |
| 140 | +\end{theorem} |
143 | 141 |
|
144 | 142 |
|
145 | 143 | \begin{figure} |
146 | 144 | \includegraphics[width=\textwidth]{figures/mcfg/mcfg.pdf} |
147 | | - \label{fig:mcfg_hierarachy_1} |
| 145 | + \label{fig:mcfg_hierarachy_1} |
148 | 146 | \caption{Иерархия по $m$} |
149 | | -\end{figure} |
| 147 | +\end{figure} |
150 | 148 |
|
151 | | - Иерархия для $m=1$ |
| 149 | +Иерархия для $m=1$ |
152 | 150 | \begin{theorem} |
153 | 151 | 1-MCFL = CFL |
154 | 152 | \end{theorem} |
155 | 153 |
|
156 | 154 | \begin{theorem} |
157 | 155 | 1-MCFL(1) $\varsubsetneq$ 1-MCFL(2) |
158 | 156 | \end{theorem} |
159 | | - |
| 157 | + |
160 | 158 | \begin{theorem} |
161 | 159 | 1-MCFL($r$) = 1-MCFL($r+1$), $r\geq2$ |
162 | 160 | \end{theorem} |
163 | 161 |
|
164 | | - Иерархия для $m=2$ |
| 162 | +Иерархия для $m=2$ |
165 | 163 | \begin{theorem}[Ramow, Satta] |
166 | 164 | 2-MCFL(2) = 2-MCFL(3) |
167 | 165 | \end{theorem} |
|
172 | 170 |
|
173 | 171 | \begin{figure} |
174 | 172 | \includegraphics[width=\textwidth]{figures/mcfg/mcfg_2.pdf} |
175 | | - \label{fig:mcfg_hierarachy_2} |
| 173 | + \label{fig:mcfg_hierarachy_2} |
176 | 174 | \caption{Иерархия по $r$} |
177 | | -\end{figure} |
| 175 | +\end{figure} |
178 | 176 |
|
179 | 177 |
|
180 | 178 | Про MIX и $O_n$ |
|
185 | 183 | \item $MIX = \{\omega \in \{a,b,c\}^* \mid |\omega|_a = |\omega|_b = |\omega|_c\}$ --- MCFL? Хотелось верить, что нет |
186 | 184 | \begin{itemize} |
187 | 185 | \item \href{https://hal.inria.fr/inria-00564552/document}{MIX is a 2-MCFL and the word problem in $\mathbb{Z}^2$ is solved by a third-order collapsible pushdown automaton, Sylvain Salvati, 2011}~\cite{salvati:inria-00564552} |
188 | | - \end{itemize} |
| 186 | + \end{itemize} |
189 | 187 | \item $O_2=\{\omega \in \{a,\overline{a},b,\overline{b}\}^* \mid |\omega|_a=|\omega|_{\overline{a}} \wedge |w|_b=|w|_{\overline{b}}\}$ |
190 | 188 | \item $O_n=\{\omega \in \{a_1,\overline{a_1},a_2,\overline{a_2},\ldots,a_n,\overline{a_n}\}^* \mid |\omega|_{a_1}=|\omega|_{\overline{a_1}} \wedge |w|_{a_2}=|w|_{\overline{a_2}} \wedge \cdots \wedge |w|_{a_n}=|w|_{\overline{a_n}}\}$ |
191 | | - \item $MIX_n = \{\omega \in \{a_1,\ldots,a_n\}^* \mid |\omega|_{a_1} = |\omega|_{a_2} =\cdots = |\omega|_{a_n}\}$ |
| 189 | + \item $MIX_n = \{\omega \in \{a_1,\ldots,a_n\}^* \mid |\omega|_{a_1} = |\omega|_{a_2} =\cdots = |\omega|_{a_n}\}$ |
192 | 190 | \item $MIX_n$ регулярно эквивалентен $O_n$ (существует алгоритм построения грамматики одного языка по грамматике другого) |
193 | 191 | \begin{itemize} |
194 | 192 | \item \href{https://hal.archives-ouvertes.fr/hal-01771670/document}{$O_n$ is an n-MCFL, Sylvain Salvati, 2018}~\cite{GEBHARDT202241} |
195 | 193 | \end{itemize} |
196 | 194 | \end{itemize} |
197 | | - |
| 195 | + |
198 | 196 |
|
199 | 197 | \begin{itemize} |
200 | 198 | \item Варианты леммы о накачке |
|
203 | 201 | \item Многомерный язык Дика: \href{https://link.springer.com/chapter/10.1007/978-3-662-59620-3_5}{Towards a 2-Multiple Context-Free Grammar for the 3-Dimensional Dyck Language, Konstantinos Kogkalidis, Orestis Melkonian, 2019}~\cite{10.1007/978-3-662-59620-3_5} |
204 | 202 | \item Шафл языков Дика: \href{https://dl.acm.org/doi/10.1145/3093333.3009848}{Context-sensitive data-dependence analysis via linear conjunctive language reachability, Qirun Zhang, Zhendong Su et al, 2017}~\cite{10.1145/3009837.3009848} |
205 | 203 | \end{itemize} |
206 | | - \end{itemize} |
207 | | - |
| 204 | + \end{itemize} |
0 commit comments