Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Конечные автоматы. (Лекция 5)

В основе лексических анализаторов лежат регулярные грамматикиСоглашение: в дальнейшем, если особо не оговорено, под регулярной грамматикой будем понимать леволинейную грамматику.Напомним, что грамматика G = (VT, VN, P, S) называется леволинейной, если каждое правило из Р имеет
Лекция 05.  Конечные автоматы В основе лексических анализаторов лежат регулярные грамматикиСоглашение: в дальнейшем, если особо не Алгоритм разбора для леволинейных грамматик (принадлежит ли цепочка a1a2...an⊥ языку грамматики)первый символ При работе алгоритма возможны следующие ситуации:прочитана вся цепочка; на последнем шаге свертка Пример реализации алгоритмаПостроим таблицу возможных сверток для грамматики Пример реализации алгоритмаИли диаграмму состояний Правила построения диаграммыстроим вершины графа, помеченные нетерминалами грамматики (для каждого нетерминала - Детерминированный  конечный автомат (КА)Определение: конечный автомат (КА) - это пятерка (K, О недетерминированном разбореДля грамматики G = ({a,b, ⊥}, {S,A,B}, P, S), где Недетерминированный  конечный автомат (НКА)Определение: недетерминированный конечный автомат (НКА) - это пятерка Следующая тема:«Построение сканера»
Слайды презентации

Слайд 2 В основе лексических анализаторов лежат регулярные грамматики
Соглашение: в

В основе лексических анализаторов лежат регулярные грамматикиСоглашение: в дальнейшем, если особо

дальнейшем, если особо не оговорено, под регулярной грамматикой будем

понимать леволинейную грамматику.
Напомним, что грамматика G = (VT, VN, P, S) называется леволинейной, если каждое правило из Р имеет вид A → Bt либо A → t, где A ∈ VN, B ∈ VN, t ∈ VT.

Соглашение: предположим, что анализируемая цепочка заканчивается специальным символом ⊥ - признаком конца цепочки.

Слайд 3 Алгоритм разбора для леволинейных грамматик (принадлежит ли цепочка

Алгоритм разбора для леволинейных грамматик (принадлежит ли цепочка a1a2...an⊥ языку грамматики)первый

a1a2...an⊥ языку грамматики)
первый символ исходной цепочки a1a2...an⊥ заменяем нетерминалом

A, для которого в грамматике есть правило вывода A → a1 ("свертка" терминала a1 к нетерминалу A)
многократно (до тех пор, пока не считаем признак конца) выполняем: полученный на предыдущем шаге нетерминал A и расположенный непосредственно справа от него очередной терминал ai исходной цепочки заменяем нетерминалом B, для которого есть правило вывода B → Aai (i = 2, 3,.., n);

Это эквивалентно построению дерева разбора методом "снизу-вверх": на каждом шаге алгоритма строим один из уровней в дереве разбора, "поднимаясь" от листьев к корню.


Слайд 4 При работе алгоритма возможны следующие ситуации:
прочитана вся цепочка;

При работе алгоритма возможны следующие ситуации:прочитана вся цепочка; на последнем шаге

на последнем шаге свертка произошла к символу S. ⇒

a1a2...an⊥ ∈ L(G).
прочитана вся цепочка; на последнем шаге свертка произошла к символу, отличному от S. ⇒ a1a2...an⊥ ∉ L(G).
на некотором шаге не нашлось нужной свертки, т.е. для нетерминала A и очередного терминала ai исходной цепочки не нашлось нетерминала B, для которого было бы правило вывода B → Aai. ⇒ a1a2...an⊥ ∉ L(G).
на некотором шаге работы алгоритма оказалось, что есть более одной подходящей свертки. Это говорит о недетерминированности разбора.


Слайд 5 Пример реализации алгоритма
Построим таблицу возможных сверток для грамматики

Пример реализации алгоритмаПостроим таблицу возможных сверток для грамматики

Слайд 6 Пример реализации алгоритма
Или диаграмму состояний

Пример реализации алгоритмаИли диаграмму состояний

Слайд 7 Правила построения диаграммы
строим вершины графа, помеченные нетерминалами грамматики

Правила построения диаграммыстроим вершины графа, помеченные нетерминалами грамматики (для каждого нетерминала

(для каждого нетерминала - одну вершину), и еще одну

вершину, помеченную символом, отличным от нетерминальных (например, H).
Эти вершины будем называть состояниями. H - начальное состояние.
соединяем эти состояния дугами по правилам:
для каждого правила грамматики вида W → t соединяем дугой состояния H и W (от H к W) и помечаем дугу символом t;
для каждого правила W → Vt соединяем дугой состояния V и W (от V к W) и помечаем дугу символом t;


Слайд 8 Детерминированный конечный автомат (КА)
Определение: конечный автомат (КА) -

Детерминированный конечный автомат (КА)Определение: конечный автомат (КА) - это пятерка (K,

это пятерка (K, VT, F, H, S), где
K -

конечное множество состояний;
VT - конечное множество допустимых входных символов;
F - отображение множества K × VT → K, определяющее поведение автомата; F - функция переходов;
H ∈ K - начальное состояние;
S ∈ K - заключительное состояние (либо конечное множество заключительных состояний).
F(A, t) = B означает, что из состояния A по символу t автомат переходит в состояние B.


Слайд 9 О недетерминированном разборе
Для грамматики G = ({a,b, ⊥},

О недетерминированном разбореДля грамматики G = ({a,b, ⊥}, {S,A,B}, P, S),

{S,A,B}, P, S), где P: S → A⊥ A → a |

Bb B → b | Bb разбор будет недетерминированным (т.к. у нетерминалов A и B есть одинаковые правые части - Bb).

Такой грамматике будет соответствовать недетерминированный конечный автомат.


Слайд 10 Недетерминированный конечный автомат (НКА)
Определение: недетерминированный конечный автомат (НКА)

Недетерминированный конечный автомат (НКА)Определение: недетерминированный конечный автомат (НКА) - это пятерка

- это пятерка (K, VT, F, H, S), где
K

- конечное множество состояний;
VT - конечное множество допустимых входных символов;
F - отображение множества K × VT в множество подмножеств K;
H ⊂ K - конечное множество начальных состояний;
S ⊂ K - конечное множество заключительных состояний.


  • Имя файла: konechnye-avtomaty-lektsiya-5.pptx
  • Количество просмотров: 108
  • Количество скачиваний: 0