You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
\item Алфавит натуральных чисел в шестнадцатеричной записи
16
+
\[\Sigma = \{0, 1, 2, 3, 4, 5, 6, 7 ,8, 9, A, B, C, D, E, F\}.\]
17
+
\end{itemize}
18
+
\end{example}
19
+
20
+
Традиционное обозначение для алфавита~--- $\Sigma$.
21
+
Также мы будем использовать различные прописные буквы латинского алфавита.
22
+
Для обозначения символов алфавита будем использовать строчные буквы латинского алфавита: $a, b, \dots, x, y, z$.
23
+
24
+
Будем считать, что над алфавитом $\Sigma$ всегда определена операция конкатенации $\cdot: \Sigma^* \times\Sigma^* \to\Sigma^*$.
25
+
Здесь $\Sigma^*$~--- \fixit{замыкание множества !!!!}{Вроде само замыкание опредлелено. Если нет, добавить определение в теорию множеств. Тут использовать.}~\ref{def:set_closure}
26
+
При записи выражений символ точки (обозначение операции конкатенации) часто будем опускать: $a \cdot b = ab$.
27
+
28
+
\begin{definition}[Слово]
29
+
\emph{Слово} над алфавитом $\Sigma$~--- это конечная конкатенация символов алфавита $\Sigma$: $\omega = a_0\cdot a_1\cdot\dots\cdot a_m$, где $\omega$~--- слово, а $a_i \in\Sigma$ для любого $i$.
30
+
Для обозначения пустого слова (слова, содержащего ноль символов) будем использовать специальный символ $\varepsilon, \varepsilon\notin\Sigma$.
31
+
\end{definition}
32
+
33
+
\begin{definition}[Длина слова]
34
+
Пусть $\omega = a_0\cdot a_1\cdot\dots\cdot a_m$~--- слово над алфавитом $\Sigma$.
35
+
Будем называть $m + 1$\emph{длиной слова} и обозначать как $|\omega|$.
36
+
Длина пустого слова равна нулю.
37
+
\end{definition}
38
+
39
+
\begin{definition}[Количество вхождений символа]
40
+
Пусть $\omega$~--- слово над алфавитом $\Sigma$. Пусть $t \in\Sigma$~--- некоторый символ из алфавита.
41
+
Тогда будем обозначать количество вхождений символа $t$ в слове $\omega$ как $|\omega|_t$.
42
+
\end{definition}
43
+
44
+
\begin{definition}[Язык]
45
+
\emph{Язык} над алфавитом $\Sigma$~--- это множество слов над алфавитом $\Sigma$: $L_{\Sigma} \subseteq\Sigma^{*}$.
46
+
\end{definition}
47
+
48
+
Иначе говоря, любой язык над алфавитом $\Sigma$ является подмножеством универсального множества $\Sigma^*$~--- множества всех слов над алфавитом $\Sigma$.
49
+
50
+
\begin{example}
51
+
Примеры языков.
52
+
53
+
\begin{itemize}
54
+
\item Язык целых чисел в двоичной записи
55
+
\[\{0, 1, 10, 11, 100, 101, \dots\}.\]
56
+
\item Язык всех правильных скобочных последовательностей\mytodo{ sidenote. Он же язык Дика. Ссыдка на языки Дика.}
57
+
\[\{(), (()), ()(), (())(), \dots\}.\]
58
+
\end{itemize}
59
+
\end{example}
60
+
61
+
62
+
63
+
\mytodo{Добавить ссылки на работы в sidenote-ы ниже.}
64
+
Заметим, что язык не обязан быть конечным множеством, в то время как алфавит в нашей области всегда конечен%
65
+
\sidenote{Существуют ситуации, когда возникают бесконечные алфавиты.}
66
+
и изучаем мы конечные слова%
67
+
\sidenote{
68
+
Существуют ситуации, когда возникают бесконечные слова.
69
+
Например работы по обработке потоков.
70
+
}.
71
+
72
+
Можно выделить следующие основные \emph{способы задания языков}.
73
+
\begin{itemize}
74
+
\item Перечислить все элементы.
75
+
Такой способ работает только для конечных языков.
76
+
Перечислить бесконечное множество за конечное время не получится.
77
+
\item Задать генератор~--- процедуру, которая на каждый свой вызов возвращает очередное слово языка.
78
+
\item Задать распознаватель~--- процедуру, которая по данному слову может определить, принадлежит оно заданному языку или нет.
79
+
\end{itemize}
80
+
81
+
Стоит отметить, что существуют и другие способы задания.
82
+
Например, язык может определяться как решение некоторого \emph{языкового уравнения}~\sidecite{Leiss1999}.
\item Алфавит натуральных чисел в шестнадцатеричной записи
27
-
\[\Sigma = \{0, 1, 2, 3, 4, 5, 6, 7 ,8, 9, A, B, C, D, E, F\}.\]
28
-
\end{itemize}
29
-
\end{example}
30
-
31
-
Традиционное обозначение для алфавита~--- $\Sigma$.
32
-
Также мы будем использовать различные прописные буквы латинского алфавита.
33
-
Для обозначения символов алфавита будем использовать строчные буквы латинского алфавита: $a, b, \dots, x, y, z$.
34
-
35
-
Будем считать, что над алфавитом $\Sigma$ всегда определена операция конкатенации $\cdot: \Sigma^* \times\Sigma^* \to\Sigma^*$.
36
-
Здесь $\Sigma^*$~--- \fixit{замыкание множества !!!!}{Вроде само замыкание опредлелено. Если нет, добавить определение в теорию множеств. Тут использовать.}~\ref{def:set_closure}
37
-
При записи выражений символ точки (обозначение операции конкатенации) часто будем опускать: $a \cdot b = ab$.
38
-
39
-
\begin{definition}[Слово]
40
-
\emph{Слово} над алфавитом $\Sigma$~--- это конечная конкатенация символов алфавита $\Sigma$: $\omega = a_0\cdot a_1\cdot\dots\cdot a_m$, где $\omega$~--- слово, а $a_i \in\Sigma$ для любого $i$.
41
-
Для обозначения пустого слова (слова, содержащего ноль символов) будем использовать специальный символ $\varepsilon, \varepsilon\notin\Sigma$.
42
-
\end{definition}
43
-
44
-
\begin{definition}[Длина слова]
45
-
Пусть $\omega = a_0\cdot a_1\cdot\dots\cdot a_m$~--- слово над алфавитом $\Sigma$.
46
-
Будем называть $m + 1$\emph{длиной слова} и обозначать как $|\omega|$.
47
-
Длина пустого слова равна нулю.
48
-
\end{definition}
49
-
50
-
\begin{definition}[Количество вхождений символа]
51
-
Пусть $\omega$~--- слово над алфавитом $\Sigma$. Пусть $t \in\Sigma$~--- некоторый символ из алфавита.
52
-
Тогда будем обозначать количество вхождений символа $t$ в слове $\omega$ как $|\omega|_t$.
53
-
\end{definition}
54
-
55
-
\begin{definition}[Язык]
56
-
\emph{Язык} над алфавитом $\Sigma$~--- это множество слов над алфавитом $\Sigma$: $L_{\Sigma} \subseteq\Sigma^{*}$.
57
-
\end{definition}
58
-
59
-
Иначе говоря, любой язык над алфавитом $\Sigma$ является подмножеством универсального множества $\Sigma^*$~--- множества всех слов над алфавитом $\Sigma$.
60
-
61
-
\begin{example}
62
-
Примеры языков.
63
-
64
-
\begin{itemize}
65
-
\item Язык целых чисел в двоичной записи
66
-
\[\{0, 1, 10, 11, 100, 101, \dots\}.\]
67
-
\item Язык всех правильных скобочных последовательностей\mytodo{ sidenote. Он же язык Дика. Ссыдка на языки Дика.}
68
-
\[\{(), (()), ()(), (())(), \dots\}.\]
69
-
\end{itemize}
70
-
\end{example}
71
-
72
-
73
-
74
-
\mytodo{Добавить ссылки на работы в sidenote-ы ниже.}
75
-
Заметим, что язык не обязан быть конечным множеством, в то время как алфавит в нашей области всегда конечен%
76
-
\sidenote{Существуют ситуации, когда возникают бесконечные алфавиты.}
77
-
и изучаем мы конечные слова%
78
-
\sidenote{
79
-
Существуют ситуации, когда возникают бесконечные слова.
80
-
Например работы по обработке потоков.
81
-
}.
82
-
83
-
Можно выделить следующие основные \emph{способы задания языков}.
84
-
\begin{itemize}
85
-
\item Перечислить все элементы.
86
-
Такой способ работает только для конечных языков.
87
-
Перечислить бесконечное множество за конечное время не получится.
88
-
\item Задать генератор~--- процедуру, которая на каждый свой вызов возвращает очередное слово языка.
89
-
\item Задать распознаватель~--- процедуру, которая по данному слову может определить, принадлежит оно заданному языку или нет.
90
-
\end{itemize}
91
-
92
-
Стоит отметить, что существуют и другие способы задания.
93
-
Например, язык может определяться как решение некоторого \emph{языкового уравнения}~\sidecite{Leiss1999}.
0 commit comments