![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Формальные языкиСтр 1 из 3Следующая ⇒
ФОРМАЛЬНЫЕ ЯЗЫКИ, АВТОМАТЫ И ГРАММАТИКИ Компьютеры сами по себе способны выполнять только очень ограниченный набор операций, называемых машинными кодами. Языки программирования, на которых сейчас пишутся программы, представляют собой формальные языки. Формальные языки – некие множества конечных последовательностей символов, которые называются словами или цепочками и которые формируются по определенным правилам. Одним способов задать формальный язык служит задание его грамматики. Для того чтобы компьютер мог понять программу, написанную на каком-то языке программирования, необходим переводчик (транслятор) такой программы в машинные коды. С помощью автоматов -распознавателей проверяется, принадлежит ли данное слово рассматриваемому формальному языку. Формальные языки Определение. Алфавитом T называется конечное непустое множество. Его элементы называются символами (буквами). Определение. Словом (цепочкой, строкой) в алфавите T называется конечная последовательность элементов из T. Пример. Если Определение. Длина слова есть число символов в слове, причем каждый символ считается столько раз, сколько раз он встречается в данном слове. Пример. Пусть T ={ a, b }. Длина слова baaa в этом алфавите: | baaa | = 4. Определение. Слово, не содержащее ни одного символа, называется пустымсловом и обозначается ε. | ε | = 0. Множество всех слов в алфавите T обозначается T *. Множество всех непустых слов в алфавите T обозначается T +. Следовательно, Т * = Т + È {e}. Пример. Пусть T ={ a, b }. Тогда T * ={ ε, a, b, aa, ab, ba, bb, aaа,....}, T + ={ a, b, aa, ab, ba, bb, aaa, aab,....}. Пример. Если Т ={0, 1}, то Т * = {e, 0, 1, 00, 11, 01, 10, 000, 001, 011,...}. Определение. Если a= ab= называется конкатенацией (или сцеплением) цепочек a и b. Замечание. Конкатенацию иногда будем записывать с помощью символа бинарной операции Для любой цепочки a всегда ae = ea = a, т.е. если строке предшествует или следует за ней пустая строка, то в результате конкатенации получаем ту же самую строку. Определение. n -ой степенью цепочки a (будем обозначать an) называется конкатенация n цепочек a. a 0 = e; an = aan- 1 = an- 1 a. Определение. (Формальным ) языком L над алфавитом T называется произвольное подмножество множества T *, т.е. L Í T *. Пример. Если T – множество букв английского алфавита, то L – множество слов английского языка. Если алфавит T – множество символов языка программирования, то L – множество слов этого языка. Если Т ={0, 1}, то следующие множества являются языками: L1 ={0, 1, 00, 11, 000, 111, …},
Если Т ={ a, b, c }, то следующие множества являются языками: L1 = { acb, aacbb, aaacbbb, …},
Необходимо различать пустой язык L =Æ, не содержащий ни одного слова и язык, содержащий только пустое слово L ={ ε }¹ Æ. Определение. Пусть Определение. Выражением над алфавитом Т называется строка символов, которая представляет собой подмножество Класс регулярных выражений определяется следующими правилами: i) Символ ii) если iii) Все регулярные выражения образуются по правилам i) и ii). Каждому регулярному выражению можно сопоставить регулярные множества
Поэтому
|