КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Цепочки символов. Операции над цепочками символов
Формальные языки и грамматики Вопросы Построение конечного автомата по регулярной грамматике
Конечный автомат является хорошей математической моделью для представления алгоритмов распознавания лексем в лексическом анализаторе. При этом источником, по которому строится конечный автомат, является регулярная грамматика (а не регулярное выражение). Если задана регулярная грамматика G = <N, T, P, S>, правила вывода которой имеют вид: А –> аВ или А–>а, где А, В ∈ N, а ∈ Т. Тогда конечный автомат А= <V, Q, δ, q0 , F>, задающий тот же самый язык, что порождает регулярная грамматика G, строится следующим образом: 1) V=T; 2) Q=N U {Z}, Z- заключительное состояние КА, не принадлежит N и T; 3) q0= {S}; 4) F={Z} 5) Отображение δ строится по правилам: - каждому правилу подстановки в грамматике G вида А –> аВ ставится в соответствие команда (А,а) –> В; - каждому правилу подстановки в грамматике G вида А –> а ставится в соответствие команда (А,а) –> Z. Допустим обратный переход: конечному автомату А= <V, Q, δ, q0 , F>можно поставить в соответствие регулярную грамматику G = <N, T, P, S>, у которой: 1) T=V; 2) N=Q; 3) S={ q0}; 4) Множество правил подстановки Р строится таким образом: каждой команде автомата (qi, a) –> qk ставится в соответствие правило подстановки qi –> а qk, если qk ∈Q, либо qi –> а, если qk ∈Z, где Z – заключительное состояние.
1. Что называется регулярным выражением? 2. Какая существует взаимосвязь между регулярным выражением и распознаваемой лексемой? 3. Что такое регулярное множество? 4. Как можно доказать эквивалентность двух регулярных выражений? 5. Как можно доказать эквивалентность двух языков?
Цепочка символов – это произвольная последовательность символов, записанных один за другим. Понятие символа (или буквы) является базовым в теории формальных языков. Цепочки символов обозначаются греческими буквами: a, b, g. Цепочка – это последовательность, в которую могут входить любые допустимые символы. Цепочка – это необязательно некоторая осмысленная последовательность символов. Последовательность «аввв..аагрьь,.. лл» - тоже пример цепочки символов. Для цепочки символов важен состав и количество символов в ней, а также порядок символов в цепочке. Один и тот же символ может произвольное число раз входить в цепочку, Поэтому цепочки «а» и «аа», а также «аб» и «ба» - это различные цепочки символов. Цепочки символов a и b равны (совпадают), a= b, если они имеют один и тот же состав символов, одно и тоже их количество и одинаковый порядок следования символов в цепочке. Количество символов в цепочке называется длиной цепочки. Длина цепочки символа a обозначается как |a|. Очевидно, что если a=b, то и |a| =|b|. Основной операцией над цепочками символов является операция конкатенации (объединения или сложения) цепочек. Конкатенация (сложение, объединение) двух цепочек символов - дописывание второй цепочки в конец первой. Конкатенация цепочек a и b обозначается как ab. Выполнив конкатенацию цепочек просто: например, если a= «аб», а b= «вг», то ab = «абвг». Так как в цепочке важен порядок символов, то операция конкатенации не обладает свойством коммутативности, то есть в общем случае a и b такие, что ab≠ba. Также очевидно, что конкатенация обладает свойством ассоциативности, то есть (ab)g=a(bg). Еще одна операция - итерация (повторение) цепочки n раз, где nÎ N, n>0-это конкатенация цепочки самой с собой n раз. Итерация цепочки a n раз обозначается как aⁿ. Для операции повторения справедливы следующие равенства ∀ a: a¹ =a, a²=aa, a³=aaa, …и т.д. Среди всех цепочек символов выделяется одна особенная - пустая цепочка. Пустая цепочка символов – это цепочка, не содержащая ни одного символа. Пустую цепочку обозначают греческой буквой l (в литературе ее иногда обозначают латинской буквой e или греческой ε). Для пустой цепочки справедливы следующие равенства: 1. │ l│=0; 2. ∀a: la=al=a; 3. l1=l; 4. ∀ n ≥ 0: lⁿ=l; 5. ∀ a:aº=l.
Дата добавления: 2014-12-27; Просмотров: 3412; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |