Цепочки символов и операции над ними

advertisement
Цепочки символов и
операции над ними
Цепочки символов в
формальных языках
Цепочкой символов называют произвольную
последовательность символов, записанных один за
другим.
Понятие символа (или буквы) является базовым
в теории формальных языков и не нуждается в
определении.
Цепочка – это необязательно некоторая
осмысленная последовательность символов.
Последовательность «аввв..аагрьь ,.лл» – пример
цепочки символов.
Цепочки символов в
формальных языках
Для цепочки символов важен состав и количество
символов в ней, а также порядок символов в
цепочке. Один и тот же символ может произвольное
число раз входить в цепочку. Поэтому цепочки «а» и
«аа», а также «аб» и «ба» – это разные цепочки
символов.
Цепочки символов равны (совпадают), если они
имеют один и тот же состав символов, одно и то же
их количество и одинаковый порядок следования
символов в цепочке.
Длина цепочки
Количество символов в цепочке называют
длиной цепочки. Длина цепочки символов α
обозначается как |α|.
Конкатенация
Конкатенация (сложение, объединение) двух
цепочек символов – это дописывание второй
цепочки в конец первой.
Так как в цепочке важен порядок символов, то
очевидно, что операция конкатенации не обладает
свойством коммутативности.
Конкатенация обладает свойством
ассоциативности.
Обращение и итерация
цепочки
Обращение цепочки – это запись символов
цепочки в обратном порядке. Если исходная цепочка
«абвг», то обращенная – «гвба».
Итерация (повторение) цепочки n раз, где n
принадлежит натуральным числам, – это
конкатенация цепочки самой с собой n раз.
Понятие языка
В общем случае язык – это заданный набор символов и
правил, устанавливающих способы комбинации этих
символов между собой для записи осмысленных текстов.
Основой любого естественного или искусственного языка
является алфавит, определяющий набор допустимых
символов языка.
Алфавит – это счётное множество допустимых символов
языка. Будем обозначать это множество символом V.
Согласно формальному определению, алфавит не
обязательно должен быть конечным (перечислимым)
множеством, но реально все существующие языки строятся
на основе конечных алфавитов.
Понятие языка
Языком L над алфавитом V: L(V) называется
некоторое счетное подмножество цепочек конечной
длины из множества всех цепочек над алфавитом V.
Из этого определения следуют два вывода: вопервых, множество цепочек языка не обязано быть
конечным; во-вторых, хотя каждая цепочка
символов, входящая в язык, должна иметь конечную
длину; эта длина может быть сколь угодно большой
и формально ничем не ограничена.
Понятие языка
Все существующие языки подпадают под это
определение. Большинство реальных естественных
и искусственных языков содержат бесконечное
множество цепочек. Также в большинстве языков
длина цепочки ничем не ограничена (например, этот
длинный текст – пример цепочки символов русского
языка). Цепочку символов, принадлежащую
заданному языку, часто называют предложением
языка, а множество цепочек символов некоторого
языка L(V) – множеством предложений этого языка.
Способы задания языка
Каждый язык – это множество цепочек символов над
некоторым алфавитом. Но кроме алфавита язык
предусматривает и задание правил построения допустимых
цепочек, поскольку обычно далеко не все цепочки над
заданным алфавитом принадлежат языку. Символы могут
объединяться в слова или лексемы – элементарные
конструкции языка. На их основе строятся предложения –
более сложные конструкции. И те и другие, в общем виде,
являются цепочками символов, но предусматривают
некоторые правила построения. Таким образом, необходимо
указать эти правила, или, строго говоря, задать язык.
Способы задания языка
– перечислением всех допустимых цепочек
языка;
– указанием способа порождения цепочек
языка (заданием грамматики языка);
– определением метода распознавания
цепочек языка.
Синтаксис языка
Синтаксис языка – это набор правил,
определяющий допустимые конструкции
языка. Синтаксис определяет «форму языка»
– задает набор цепочек символов, которые
принадлежат языку. Чаще всего синтаксис
языка можно задать в виде строгого набора
правил, но полностью это утверждение
справедливо только для чисто формальных
языков.
Семантика языка
Семантика языка – это раздел языка,
определяющий значение предложений языка. Слово
«семантика» с греческого переводится как
обозначающий. Семантика определяет «содержание
языка» – задает значение для всех допустимых
цепочек языка. Семантика для большинства языков
определяет неформальными методами (отношения
между знаками и тем, что они обозначают, и
изучаются семиотикой). Чисто формальные языки
лишены какого-либо смысла.
Лексика
Лексика – это совокупность слов (словарный
запас) языка. Слово или лексическая единица
(лексема) языка – это конструкция, которая состоит
из элементов алфавита языка и не содержит в себе
других конструкций. Иначе говоря, лексическая
единица может содержать только элементарные
символы и не может содержать других лексических
единиц.
Download