Skip to content

Commit 3504c57

Browse files
committed
Draft 1
1 parent c47efa1 commit 3504c57

File tree

6 files changed

+1163
-1093
lines changed

6 files changed

+1163
-1093
lines changed

tex/FormalLanguageTheoryIntro.tex

Lines changed: 145 additions & 145 deletions
Large diffs are not rendered by default.

tex/GraphTheoryIntro.tex

Lines changed: 208 additions & 207 deletions
Large diffs are not rendered by default.

tex/Introduction.tex

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
\chapter*{Введение\markboth{Введение}{}}
1+
\chapter*{Введение}
22

33
Теория формальных языков находит применение не только в ставших уже классическими задачах синтаксического анализа кода (языков программирования, искусственных языков) и естественных языков, но и в других областях, таких как статический анализ кода, графовые базы данных, биоинформатика, машинное обучение.
44

5-
Например, в машинном обучении использование формальных грамматик позволяет передать искусственной генеративной нейронной сети, предназначенной для построения цепочек с определёнными свойствами, знания о синтаксической структуре этих цепочек, что позволяет существенно упростить процесс обучения и повысить качество результата~\cite{10.5555/3305381.3305582}.
6-
Вместе с этим, развиваются подходы, позволяющие нейронным сетям наоборот извлекать синтаксическую структуру (строить дерево вывода) для входных цепочек~\cite{kasai-etal-2017-tag,kasai-etal-2018-end}.
5+
Например, в машинном обучении использование формальных грамматик позволяет передать искусственной генеративной нейронной сети, предназначенной для построения цепочек с определёнными свойствами, знания о синтаксической структуре этих цепочек, что позволяет существенно упростить процесс обучения и повысить качество результата~\sidecite{10.5555/3305381.3305582}.
6+
Вместе с этим, развиваются подходы, позволяющие нейронным сетям наоборот извлекать синтаксическую структуру (строить дерево вывода) для входных цепочек~\sidecite{kasai-etal-2017-tag,kasai-etal-2018-end}.
77

8-
В биоинформатике формальные грамматики нашли широкое применение для описания особенностей вторичной структуры геномных и белковых последовательностей~\cite{Dyrka2019,WJAnderson2012,zier2013rna}.
8+
В биоинформатике формальные грамматики нашли широкое применение для описания особенностей вторичной структуры геномных и белковых последовательностей~\sidecite{Dyrka2019,WJAnderson2012,zier2013rna}.
99
Соответствующие алгоритмы синтаксического анализа используются при создании инструментов обработки данных.
1010

1111
Таким образом, теория формальных языков выступает в качестве основы для многих прикладных областей, а алгоритмы синтаксического анализа применимы не только для обработки естественных языков или языков программирования.
@@ -25,16 +25,16 @@ \chapter*{Введение\markboth{Введение}{}}
2525
Иными словами, задача поиска путей может быть сформулирована следующим образом: необходимо найти такие пути в графе, что слова, получаемые конкатенацией меток их рёбер, принадлежат заданному языку.
2626
Такой класс задач будем называть задачами поиска путей с ограничениям в терминах формальных языков.
2727

28-
Подобный класс задач часто возникает в областях, связанных с анализом граф-структурированных данных и активно исследуется~\cite{doi:10.1137/S0097539798337716,axelsson2011formal,10.1007/978-3-642-22321-1_24,Ward:2010:CRL:1710158.1710234,barrett2007label,doi:10.1137/S0097539798337716}.
28+
Подобный класс задач часто возникает в областях, связанных с анализом граф-структурированных данных и активно исследуется~\sidecite{doi:10.1137/S0097539798337716,axelsson2011formal,10.1007/978-3-642-22321-1_24,Ward:2010:CRL:1710158.1710234,barrett2007label,doi:10.1137/S0097539798337716}.
2929
Исследуются как классы языков, применяемых для задания ограничений, так и различные постановки задачи.
3030

3131
Граф-структурированные данные встречаются не только в графовых базах данных, но и при статическом анализе кода: по программе можно построить различные графы отображающие её свойства.
3232
Скажем, граф вызовов, граф потока данных и так далее.
3333
Оказывается, что поиск путей в специального вида графах с использованием ограничений в терминах формальных языков позволяет исследовать некоторые нетривиальные свойства программы.
34-
Например проводить межпроцедурный анализ указателей или анализ псевдонимов (алиасов)~\cite{Zheng,10.1145/2001420.2001440,10.1145/2714064.2660213}, строить срезы программ~\cite{10.1145/193173.195287}, проводить анализ типов~\cite{10.1145/373243.360208}.
34+
Например проводить межпроцедурный анализ указателей или анализ псевдонимов (алиасов)~\sidecite{Zheng,10.1145/2001420.2001440,10.1145/2714064.2660213}, строить срезы программ~\sidecite{10.1145/193173.195287}, проводить анализ типов~\sidecite{10.1145/373243.360208}.
3535

3636
В данной работе представлен ряд алгоритмов для поиска путей с ограничениями в терминах формальных языков.
37-
Основной акцент будет сделан на контекстно-свободных языках, однако будут затронуты и другие классы: регулярные, многокомпонентные контекстно-свободные (Multiple Context-Free Languages, MCFL~\cite{SEKI1991191}) и конъюнктивные языки.
37+
Основной акцент будет сделан на контекстно-свободных языках, однако будут затронуты и другие классы: регулярные, многокомпонентные контекстно-свободные (Multiple Context-Free Languages, MCFL~\sidecite{SEKI1991191}) и конъюнктивные языки.
3838
Будет показано, что теория формальных языков и алгоритмы синтаксического анализа применимы не только для анализа языков программирования или естественных языков, а также для анализа графовых баз данных и статического анализа кода, что приводит к возникновению новых задач и переосмыслению старых.
3939

4040

@@ -47,32 +47,35 @@ \chapter*{Введение\markboth{Введение}{}}
4747
Большинство алгоритмов будут основаны на классических алгоритмах синтаксического анализа, таких как CYK или LR.
4848
%Все главы, начиная с~\ref{chpt:GraphTheoryIntro}, снабжены списком вопросов и задач для самостоятельного решения и закрепления материала.
4949

50-
\begin{center}
50+
51+
\begin{figure*}
52+
\begin{center}
5153
\begin{tikzpicture}[shorten >=1pt,on grid,auto]
52-
\node (q_linal) [text width=4cm] {Некоторые понятия линейной алгебры};
53-
\node (q_graphtheory) [below of=q_linal, text width=4cm] {Некоторые сведения из теории графов};
54-
\node (q_fortmallang) [right of=q_graphtheory, text width=4cm] {Общие сведения теории формальных языков};
55-
\node (q_reglang) [below of=q_fortmallang, text width=4cm] {Регулярные языки};
56-
\node (q_cflang) [right of=q_reglang, text width=4cm] {Контекстно-свободные языки и грамматики};
57-
\node (q_mcfl) [right of=q_cflang, text width=4cm] {Многокомпонентные контекстно-свободные языки};
58-
\node (q_flpq) [below of=q_graphtheory, text width=4cm] {Пути с ограничениями в терминах формальных языков};
59-
60-
\node (q_rpq) [below of=q_reglang, text width=4cm] {Поиск путей с регулярными ограничениями};
61-
\node (q_cfpq) [below of=q_cflang, text width=4cm] {Пути с ограничениями в терминах контекстно-свободных языков};
62-
\node (q_mcfpq) [below of=q_mcfl, text width=4cm] {Пути с ограничениями в терминах многокомпонентных контекстно-свободных языков};
63-
\path[->]
64-
(q_linal) edge node {} (q_graphtheory)
65-
(q_graphtheory) edge node {} (q_flpq)
66-
(q_fortmallang) edge node {} (q_flpq)
67-
(q_fortmallang) edge node {} (q_reglang)
68-
(q_fortmallang) edge node {} (q_cflang)
69-
(q_fortmallang) edge node {} (q_mcfl)
70-
(q_reglang) edge node {} (q_rpq)
71-
(q_cflang) edge node {} (q_cfpq)
72-
(q_mcfl) edge node {} (q_mcfpq)
73-
(q_flpq) edge node {} (q_rpq)
74-
(q_flpq) edge node {} (q_cfpq)
75-
(q_flpq) edge node {} (q_mcfpq)
76-
;
54+
\node (q_linal) [text width=4cm] {Некоторые понятия линейной алгебры};
55+
\node (q_graphtheory) [below of=q_linal, text width=4cm] {Некоторые сведения из теории графов};
56+
\node (q_fortmallang) [right of=q_graphtheory, text width=4cm] {Общие сведения теории формальных языков};
57+
\node (q_reglang) [below of=q_fortmallang, text width=4cm] {Регулярные языки};
58+
\node (q_cflang) [right of=q_reglang, text width=4cm] {Контекстно-свободные языки и грамматики};
59+
\node (q_mcfl) [right of=q_cflang, text width=4cm] {Многокомпонентные контекстно-свободные языки};
60+
\node (q_flpq) [below of=q_graphtheory, text width=4cm] {Пути с ограничениями в терминах формальных языков};
61+
62+
\node (q_rpq) [below of=q_reglang, text width=4cm] {Поиск путей с регулярными ограничениями};
63+
\node (q_cfpq) [below of=q_cflang, text width=4cm] {Пути с ограничениями в терминах контекстно-свободных языков};
64+
\node (q_mcfpq) [below of=q_mcfl, text width=4cm] {Пути с ограничениями в терминах многокомпонентных контекстно-свободных языков};
65+
\path[->]
66+
(q_linal) edge node {} (q_graphtheory)
67+
(q_graphtheory) edge node {} (q_flpq)
68+
(q_fortmallang) edge node {} (q_flpq)
69+
(q_fortmallang) edge node {} (q_reglang)
70+
(q_fortmallang) edge node {} (q_cflang)
71+
(q_fortmallang) edge node {} (q_mcfl)
72+
(q_reglang) edge node {} (q_rpq)
73+
(q_cflang) edge node {} (q_cfpq)
74+
(q_mcfl) edge node {} (q_mcfpq)
75+
(q_flpq) edge node {} (q_rpq)
76+
(q_flpq) edge node {} (q_cfpq)
77+
(q_flpq) edge node {} (q_mcfpq)
78+
;
7779
\end{tikzpicture}
78-
\end{center}
80+
\end{center}
81+
\end{figure*}

0 commit comments

Comments
 (0)