Основные определения: алфавит, слово, язык, конкатенация, свободный моноид слов; операции над языками — различия между версиями
м (→Свойства) |
|||
Строка 56: | Строка 56: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Язык''' {{---}} множество | + | '''Язык''' {{---}} множество цепочек, каждая из которых принадлежит <tex>\Sigma^*</tex>, где <tex>\Sigma</tex> {{---}} некоторый фиксированный алфавит. |
}} | }} | ||
Если <tex>\Sigma</tex> {{---}} алфавит и <tex>L \subseteq \Sigma^*</tex>, то <tex>L</tex> {{---}} это '''язык над''' <tex>\Sigma</tex>, или '''в''' <tex>\Sigma</tex>. Отметим, что язык в <tex>\Sigma</tex> не обязательно должен содержать цепочки, в которые входят все символы <tex>\Sigma</tex>. Поэтому, если известно, что <tex>L</tex> является языком в <tex>\Sigma</tex>, то можно утверждать, что <tex>L</tex> {{---}} это язык над любым алфавитом, содержащим <tex>\Sigma</tex>. | Если <tex>\Sigma</tex> {{---}} алфавит и <tex>L \subseteq \Sigma^*</tex>, то <tex>L</tex> {{---}} это '''язык над''' <tex>\Sigma</tex>, или '''в''' <tex>\Sigma</tex>. Отметим, что язык в <tex>\Sigma</tex> не обязательно должен содержать цепочки, в которые входят все символы <tex>\Sigma</tex>. Поэтому, если известно, что <tex>L</tex> является языком в <tex>\Sigma</tex>, то можно утверждать, что <tex>L</tex> {{---}} это язык над любым алфавитом, содержащим <tex>\Sigma</tex>. |
Версия 20:51, 21 октября 2011
Определение: |
Алфавит — конечное непустое множество символов. Условимся обозначать алфавит символом | .
Наиболее часто используются следующие алфавиты:
- — бинарный или двоичный алфавит.
- — множество строчных букв английского алфавита.
Определение: |
Слово (цепочка) — это конечная последовательность символов некоторого алфавита. |
Определение: |
Пустая цепочка — цепочка, не содержащая ни одного символа. Эту цепочку, обозначаемую | , можно рассматривать как цепочку в любом алфавите.
Определение: |
Длина цепочки — число символов в цепочке. Длину некоторой цепочки | обычно обозначают .
Определение: |
Степени алфавита Если | — некоторый алфавит, то можно выразить множество всех цепочек определенной длины, состоящих из символов данного алфавита, используя знак степени. Определим как множество всех цепочек длины , состоящих из символов алфавита . Множество всех цепочек над алфавитом принято обозначать , то есть .
Определение: |
Конкатенация слов Пусть | и — цепочки. Тогда обозначает их конкатенацию, т.е. цепочку, в которой последовательно записаны цепочки x и y.
Свойства
- Ассоциотивность
- (нейтральный элемент) такой, что
Таким образом мы получаем свободный моноид слов.
Определение: |
Слово | является префиксом , если .
Определение: |
Слово | является суффиксом , если .
Определение: |
Слово | является подстрокой , если .
Определение: |
Язык — множество цепочек, каждая из которых принадлежит | , где — некоторый фиксированный алфавит.
Если — алфавит и , то — это язык над , или в . Отметим, что язык в не обязательно должен содержать цепочки, в которые входят все символы . Поэтому, если известно, что является языком в , то можно утверждать, что — это язык над любым алфавитом, содержащим .