Pretvorba regularnih izrazov v končni avtomat - teorija

Regularni jeziki

Definicija: Regularni jezik L nad abecedo A je formalni jezik, ki zadovoljuje naslednje ekvivalentne lastnosti:


Primer:
Sprejemnik
(Acceptor)
Opisnik
(Descriptor)
Tvornik
(Generator)
a*ba* S → aS | bA
A → ε | aA

Zapiranje razreda regularnih jezikov z znaki unija, zdruŽevanje in Kleenova iteracija

Definicija: Jezik L ∈ A* je regularen, če L ustreza nekaterim KA.

če je podan L, L' ∈ A*, definiraj unijo L ∪ L', zdruŽitev L ∘ L' = { v = ww'| w ∈ L, w' ∈ L'}

Definiraj L0 = { ε }, Lk = L ∘ Lk-1 za k > 0. Kleenova iteracija: L* = ⋃ (k = 0 to ∞ ) Lk.

Teorem - zapiranje z regularnimi operacijami: če so L, L' ∈ A* regularni jeziki, so regularni jeziki tudi L ∪ L', L ∘ L' in L*.

Dokaz: S podanimi KA, ki sprejemajo L, torej L', konstruiraj NKA, da sprejmejo L ∪ L', L ∘ L' in L*, kot prikazano. Podani KA so prikazani kot kvadrati z začetnim stanjem na levi in enim ustreznim stanjem (predstavljajoč vse druge) na desni. V vsakem primeru dodamo novo začetno stanje in nekatere ε-prehode, kot je prikazano.

Regularni izrazi

Definicija: S podano abecedo A, ugotovimo razred R(A) regularnih izrazov nad A na sledeči način:

Vaje

Konstruiraj končni avtomat za deskriptorje:a, aa|ba|ε, (a(bb|a)*)*, b(a*(ba*)*)*|a