Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Основные определения. Задачей синтаксического анализа считается проверка, принадлежит ли произвольная заданная цепочка a Î T * языку L(G) для заданной грамматики G




Конечные автоматы

СИНТАКСИЧЕСКИЙ АНАЛИЗ РЕГУЛЯРНЫХ ЯЗЫКОВ

Задачей синтаксического анализа считается проверка, принадлежит ли произвольная заданная цепочка a Î T * языку L (G) для заданной грамматики G. На основе методов синтаксического анализа решаются задачи синтаксически управляемой обработки данных (например, текстов). Такой задачей является и задача трансляции. Регулярные языки и порождающие их А-грамматики используются, в основном, для лексического анализа - распознавания в тексте его лексических единиц, лексем, т.е. слов, из которых по более сложным правилам строится текст.

Если язык задан регулярным выражением, то для синтаксического анализа этого языка можно построить его А-грамматику с помощью алгоритма из теоремы 3.8. Для анализа регулярного языка используют устройство, называемое конечным автоматом, которое можно построить по А-грамматике языка.

 

Конечный автомат состоит из ленты конечной длины, на которой записан текст, и читающей головки, движущейся вдоль ленты слева направо. Автомат в каждый момент находится в каком-то состоянии, которых у него конечное число. На каждом шаге автомат сдвигается на один символ вправо (читает символ) и переходит в новое состояние (которое может совпадать со старым). Новое состояние определяется старым состоянием и прочитанным символом. Если прочитан последний символ, автомат останавливается. Новое состояние может определяться неоднозначно - тогда автомат называется недетерминированным. Для анализа же используются детерминированные автоматы. Автомат сообщает, допустима ли прочитанная цепочка.

Формально, конечным автоматом называется набор A = (Q, T, t, q 0, F), где
T - текстовый алфавит;
Q - конечное множество состояний, T Ç Q = Æ;
q 0 Î Q - начальное состояние;
F Í Q - множество заключительных состояний;
t - множество правил перехода, t Í Q ´ T ´ Q.

Правило перехода (q, a, q ') Î t записывается в виде (q, a) ® q ' и означает, что из q автомат может перейти в q ', прочитав символ a.

Конфигурацией автомата называется любая цепочка вида qa, где q Î Q и a Î T *, в начальной конфигурации q = q 0. Отношение перехода ® A на множестве конфигураций определяется следующим образом:

qаa ® A q ' a Û (q, a) ® q ' Î t

Если для каждой пары (q, a) имеется не более одного правила перехода, то автомат называется детерминированным. Тогда t называется функцией перехода и t (q, a) = q ', если есть правило (q, a) ® q '.

Определим отношение q - a ® q ', означающее, что состояние q ' достижимо из q на цепочке a Î T *, как наименьшее отношение, удовлетворяющее следующим условиям:

1. q - e ® q;

2. q - aa ® q ', если в t есть правило (q, a) ® q " и q "- a ® q '.

Говорят, что цепочка a Î T * допускается автоматом A, если на a из начального состояния достижимо какое-нибудь заключительное, т.е. если q 0- a ® q и q Î F. Множество всех допускаемых автоматом A цепочек называется языком, допускаемым автоматом A и обозначается L (A).

Пример 4.1. Множество идентификаторов допускается автоматом с Q ={ q 0, q 1}, F ={ q 1}, T ={ a,..., z,0,...,9} и правилами

(q 0, a) ® q 1,..., (q 0,z) ® q 1,
(q 1, a) ® q 1,..., (q 1,z) ® q 1,
(q 1,0) ® q 1,..., (q 1,9) ® q 1.


Автомат можно наглядно представлять его диаграммой - помеченным ориентированным графом, вершинами которого являются состояния, помеченные именем или номером состояния, а помеченная дуга q - a ® q ' соответствует правилу (q, a) ® q '. Заключительные состояния будем обозначать двойным кружком. Так, предыдущий автомат представляется диаграммой

Из определений непосредственно вытекает

Л е м м а 4.1. q - a ® q ' Û в диаграмме есть путь из q в q ', метки дуг которого образуют цепочку a (учитываются и пути нулевой длины, соответствующие a = e).





Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 356; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.