Professional Documents
Culture Documents
Коначни аутомати
Коначни аутомати
аутомати
Програмски преводиоци
Садржај
• Провера припадности стринга језику
дефинисаном регуларним изразима
• Коначни аутомати
• Недетерминистички коначни аутомати
• Извођење детерминистичког из
недетерминистичког коначног аутомата
• Имплементирање коначних аутомата
помоћу табела
Провера припадности стринга језику
дефинисаном регуларним изразима
• Лексичка спецификација која се жели
имплементирати записује се у виду
регуларних израза
• На основу регуларних израза формира се
недетерминистички коначнан аутомат
(НКА), из кога се може извести
детерминистички коначнан аутомат (ДКА)
• Коначни аутомат се имплементира у виду
програма који ће вршити лексичку анализу
Провера припадности стринга језику
дефинисаном регуларним изразима
Провера припадности стринга језику
дефинисаном регуларним изразима
• Техника регуларни изрази служи
спецификацији језика
• Техника коначни аутомати служи
имплементацији језика
• Коначни аутомати:
– Конципирају се графички, ради прегледности
– Имплементирају се алгоритмима, уз помоћ
табеларних структура података
– За сваки регуларан израз формира се
еквивалентан НКА
Коначни аутомат
• Коначни аутомат (илити коначна машина)
састоји се од:
– Улазног алфабета ∑,
– Коначног скупа стања Ѕ,
– Стартног стања n,
– Скупа прихватајућих стања F S и
– Скупа прелаза из једног стања, за задати улаз, у
друго стање стање улаз стање
Коначни аутомат
a
• Прелаз с1 с2
чита се: стање с1 за улаз а прелази у
стање с2
• Улаз се може завршити, а да се аутомат
затекне у прихватљивом стању
=> Прихваћен је улаз
• Улаз се може завршити, а да се аутомат не
затекне у прихватљивом стању
=> Одбијен је улаз, то јест стање c F , то јест
улаз се заглавио
Коначни аутомат
• Стање
• Почетно стање
• Прихватајуће стање
• Прелаз
Коначни аутомат
• Пример коначног аутомата који прихвата
једино улаз “1”:
за улаз 1 0 0
може проћи путањама {A}, {A, B} и {A, B, C},
а ако је барем у једној од њих завршио у
прихватајућем стању, улаз је прихваћен.
Недетерминистички коначан аутомат
– За ε:
– За улаз а:
Превођење регуларног израза у
недетерминистички коначан аутомат
• Нотација за графичко приказивање НКА:
– За конкатенацију АВ:
0 1
S T U
T T U
U T U
Имплементирање коначних
аутомата помоћу табела
• Одговарајући код могао би бити:
i = 0;
state = 0;
While(input[i]) {
state = A[state, input[i++]];
}