Таким образом, мы получаем '''свободный [[Моноид|моноид]] слов'''.
== Операции над языками ==
Пусть <tex>L</tex> и <tex>M</tex> {{---}} [[Основные определения: алфавит, слово, язык, конкатенация, свободный моноид слов#deflanguage|языки]]. Тогда над ними можно определить следующие операции.
#Теоретико-множественные операции:
#* <tex>L \cup M</tex> {{---}} объединение,
#* <tex>L \cap M </tex> {{---}} пересечение,
#* <tex>L \setminus M</tex> {{---}} разность,
#* <tex>\overline{L}=\Sigma^* \setminus L</tex> {{---}} дополнение.
#Конкатенация <tex>LM=\left\{\alpha\beta|\alpha \in L, \beta \in M\right\}</tex>.
#Степень языка <tex>L^k=\begin{cases}
\{\varepsilon\}, k = 0\\
LL^{k-1}, k > 0.
\end{cases}
</tex>
#Замыкание Клини <tex>L^*=\bigcup\limits_{i=0}^{\infty}L^i</tex>.
=== Примеры ===
* <tex>(\{0\}^*) \cup (\{1\}^*)</tex> — язык состоит из последовательностей нулей, последовательностей единиц и пустого слово.
* <tex>(\{0\}\{0\}^*) \cup (\{1\}\{1\}^*)</tex> — аналогично предыдущему, но не содержит пустое слово.
* <tex>(\{0\} \cup \{1\})^* = \{0, 1\}^*</tex> — содержит все двоичные векторы и пустую строку.
* Если <tex>L_p</tex> — язык строковых представлений всех простых чисел, то язык <tex>(L_p \setminus (\{3\}\{1,2,3,4,5,6,7,8,9,0\}^*))</tex> будет содержать строковые представления простых чисел, не начинающихся с тройки.
[[Категория: Теория формальных языков]]
[[Категория: Автоматы и регулярные языки]]
[[Категория: Теория формальных языков]]
[[Категория: Автоматы и регулярные языки]]