Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




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

 

В А-грамматике все порождающие правила имеют вид:

AaB или Aa,

где A,B – нетерминальные символы, а – терминальный символ.

В процессе порождения, начинающегося с начального нетерминала, цепочка всегда имеет очень простой вид: γA, где γ – терминальная цепочка, A – нетерминал. И только на самом последнем шаге этот единственный нетерминал заменяется терминальным символом. Процесс грамматического разбора должен повторять процесс порождения, его можно реализовать с помощью алгоритма, называемого конечным автоматом (КА).

Конечный автомат задается пятеркой множеств:

{Σ, Q, q0, F, δ},

где Σ – множество (алфавит) входных символов; Q – множество состояний КА; q0 – начальное состояние, ; F – множество заключительных состояний, ; δ – множество правил перехода, каждое правило имеет вид:

(a, qi) → qj,

где . Правило перехода задает переход из состояния qi , когда на входе читается символ a, в состояние qj.

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

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

 


<== предыдущая страница | следующая страница ==>
ПРИНЦИПЫ ТРАНСЛЯЦИИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ | Построение детерминированного конечного автомата

Дата добавления: 2015-07-26; просмотров: 141; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.