Опубликован: 26.09.2006 | Доступ: свободный | Студентов: 1812 / 504 | Оценка: 4.25 / 4.12 | Длительность: 17:09:00
ISBN: 978-5-9556-0066-6
Специальности: Программист, Математик
Лекция 13:

Формальные языки

Основные понятия и обозначения

Алфавит — конечное множество абстрактных символов, как правило, упорядоченное в так называемом алфавитном порядке.

Слово (в алфавите A ) — конечная последовательность символов (алфавита).

Длина слова — количество вхождений символов в слово. Длина слова u, обычно обозначается |u|.

Пустое слово — пустая последовательность, то есть последовательность, не содержащая ни одного символа. Пустое слово, соблюдая традиции, часто обозначают греческой буквой \lm, полагая при этом, что она не является символом рассматриваемого алфавита.

Слово длины k ( k > 0 ) можно отождествить с элементом декартова произведения ( A \x A \x \ldots \x A), в котором k сомножителей, обозначаемого A^k. При k = 0 имеем A^0, состоящее из одного пустого слова; не путать с пустым множеством, обозначаемым знаком \varnothing.

Замечание. При отождествлении элемента декартова произведения со словом полагаем, что слово составлено из входящих в него символов в соответствующем порядке.

Множество всех слов в алфавите A обозначают

\eq*{
A^{*} =A^{0} \cup A^{1} \cup A^{2} \cup \ldots= \bigcup_{i=0}^{\infty }
A^i.
}

Множество всех непустых слов в алфавите A обозначают

\eq*{
A^{+} =A^{1} \cup A^{2} \cup \ldots=\bigcup_{i=1}^{\infty}A^{i}.
}

Сверхслово (в алфавите A ) — бесконечная последовательность символов (алфавита A ).

Формальный язык (в алфавите A ) — множество слов (в алфавите A ).

Конкатенация слов — двухместная операция над словами, заключающаяся в приписывании второго слова к первому. Результат конкатенации слов u и v обозначается uv.

Начальный фрагмент слова u, имеющий длину k \le |u|, называется префиксом длины k слова u, обозначается {\rm pref}_k u.

Конечный фрагмент слова u, имеющий длину k \le |u|, называется суффиксом длины k слова u, обозначается {\rm suff}_k u.

Если k < |u|, то префикс и суффикс называются собственными. Заметим, что при нашем определении пустое слово \lm будет и собственным префиксом, и собственным суффиксом любого слова u.

Операции над формальными языками. Поскольку формальные языки являются множествами, то к ним применяются обычные теоретико-множественные операции: объединение, пересечение, дополнение (до множества всех слов в рассматриваемом алфавите). Кроме перечисленных, применяются специфические операции — это конкатенация двух языков и итерация языка.

Результатом конкатенации языков L_1 и L_2 является язык L = \{uv \,|\, u \in L_1, v \in L_2\}, обозначаемый также L_1\cdot L_2. Результат конкатенации k экземпляров языка L обозначим через L^k.

Результатом итерации языка L является язык L^\ast = \{u
\,|\,
(\exists k \ge 0) {u\in L^k}\}. Заметим, что L^0
=\{\lm\} и поэтому \lm \in L^\ast при любом L.

Замечание. При работе с формальными языками операцию объединения часто обозначают знаком " + ". В следующих тождествах используется именно это соглашение.

Основные тождества. Пусть \al, \beta, \gamma — произвольные формальные языки над некоторым фиксированным алфавитом, тогда справедливы следующие тождества:

\begin{gather*}
(\al + \beta) + \gamma = \al + (\beta+ \gamma),\\
(\al \cdot \beta)\cdot \gamma = \al \cdot (\beta \cdot \gamma),\\
\al + \beta = \beta+ \al,\\
\al \cdot (\beta + \gamma) = \al \cdot \beta + \al \cdot \gamma,\\
(\al + \beta)\cdot \gamma = \al \cdot \gamma+ \beta \cdot \gamma,\\
\al \cdot \varnothing^\ast = \al,\\
\al \cdot \varnothing = \varnothing,\\
\al^\ast = \al \cdot \al^\ast + \varnothing^\ast,\\
\al^\ast = (\al + \varnothing^\ast)^\ast.
\end{gather*}
Антон Сиротинкин
Антон Сиротинкин

на стр 6, лекции 3, Очевидно "Ck <= модуль(Gk(е))*b(k+1)" (1) - , подскажите что значит "модуль" и почему это очевидно...