В формальной теории языка алфавит , иногда называемый словарем , представляет собой непустой набор неделимых символов / знаков / глифов , [1] обычно считающийся представляющим буквы, знаки, цифры, фонемы или даже слова. [2] [ 3] Алфавиты в этом техническом смысле набора используются в самых разных областях, включая логику, математику, информатику и лингвистику. Алфавит может иметь любую мощность («размер») и, в зависимости от его назначения, может быть конечным (например, алфавит букв «a» - «z»), счетным (например, ) или даже несчетным (например, ).
Строки , также известные как «слова» или «предложения», в алфавите определяются как последовательность символов из набора алфавита. [4] Например, алфавит из строчных букв «a» — «z» может использоваться для формирования английских слов, таких как «iceberg», в то время как алфавит из заглавных и строчных букв также может использоваться для формирования имен собственных, таких как «Wikipedia». Распространенным алфавитом является {0,1}, двоичный алфавит , а «00101111» является примером двоичной строки . Бесконечные последовательности символов также могут рассматриваться (см. язык Omega ).
Часто бывает необходимо в практических целях ограничить символы в алфавите, чтобы они были однозначными при интерпретации. Например, если двухэлементный алфавит — {00,0}, то строка, записанная на бумаге как «000», неоднозначна, поскольку неясно, является ли она последовательностью из трех символов «0», «00», за которым следует «0», или «0», за которым следует «00».
Если L — формальный язык, т. е. (возможно, бесконечный) набор строк конечной длины, алфавит L — это набор всех символов, которые могут встречаться в любой строке в L. Например, если L — это набор всех идентификаторов переменных в языке программирования C , то алфавит L — это набор { a, b, c, ..., x, y, z, A, B, C, ..., X, Y, Z, 0, 1, 2, ..., 7, 8, 9, _ }.
При наличии алфавита множество всех строк длины по алфавиту обозначается как . Множество всех конечных строк (независимо от их длины) обозначается оператором звезды Клини как , и также называется замыканием Клини . Обозначение обозначает множество всех бесконечных последовательностей по алфавиту , а обозначает множество всех конечных или бесконечных последовательностей.
Например, при использовании двоичного алфавита {0,1} строки ε, 0, 1, 00, 01, 10, 11, 000 и т. д. находятся в замыкании Клини алфавита (где ε представляет собой пустую строку ).
Алфавиты важны при использовании формальных языков , автоматов и полуавтоматов . В большинстве случаев для определения экземпляров автоматов, таких как детерминированные конечные автоматы (DFA), требуется указать алфавит, из которого строятся входные строки для автомата. В этих приложениях алфавит обычно должен быть конечным множеством , но не имеет других ограничений.
При использовании автоматов, регулярных выражений или формальных грамматик в качестве части алгоритмов обработки строк можно предположить, что алфавит представляет собой набор символов текста, обрабатываемого этими алгоритмами, или подмножество допустимых символов из набора символов.
—
это непустое конечное множество , элементы которого называются символами или знаками .
Подалфавитом мы
подразумеваем
непустой набор
символов
.
Словарь (или алфавит) V — это конечное непустое множество элементов, называемых символами. Слово (или предложение) над V — это строка конечной длины элементов V.
Если 𝗔 — алфавит , т. е. если элементы 𝐬 ∈ 𝗔 являются символами или, по крайней мере, именованными символами, то последовательность (𝐬 1 ,...,𝐬 n )∈𝗔 n записывается как 𝐬 1 ···𝐬 n и называется строкой или словом над 𝗔.