Regulaarsed keeled on keeled, mida saab genereerida regulaarse e. klass-3
grammatikaga (Chomsky klassifikatsioon), s.t. grammatikaga (A,V,Xo,P),
mille köik produktsioonid on kujul
X
Ya või
X
a
kus X,Y
V ja a
A.
Grammatika on formalism keelte (s.t. kõigi keelde kuuluvate sõnade)
genereerimiseks. See on ka tavaliselt inimese jaoks väga hästimõistetav viis keelte defineerimiseks. Genereerimismehhanismi olemasolu aga ei taga veel, et
suvalise söna w ja (grammatika abil esitatud) keele L jaoks oleks
alati selge, kuidas lahendada probleemi: kas sõna w kuulub keelde
L, s.t. w
? L
Söna keelde kuuluvuse probleemi (aga seda peab arvuti lahendama igas keele teisendusprogrammis, s.t. kõigil transleerimise etappidel) kasutatakse automaate. Igale grammatikate klassile Chomsky klassifikatsioonis vastab oma automaatide klass.
Regulaarseid keeli saab defineerida ka kui keeli, mida saab tunnistada lõpliku automaadiga.
Löplik automaat on viisik (A, S, so,
F, P), kus
A on sisendtähestik (terminalide tähestik)
S on olekute hulk (lõplik)
so
S on algolek
F
S on lõppolekute
hulk
P on automaadi üleminekuid (tööd) kirjeldavate
produktsioonide hulk. Produktsiooni sa
s' semantika (tähendus) on, et kui automaat olekus s loeb sisendlindilt
sümboli (sisendtähestiku tähe) a, läheb ta olekusse
s' .
Löplikke automaate esitatakse sageli nende graafiga. Automaadi graafi
tippudeks on olekud, kaarteks - üleminekud, kaart tähistatakse sisendsümboliga, mis vastava ülemineku esile kutsub.
Regulaarseid keeli saab esitada ka nn regulaarsete avaldistega. Regulaarsed avaldised (ja regulaarsele avaldisele e vastav keel L(e), s.t. sõnade hulga terminalide tähestikus T) defineeritakse rekursiivselt:
on regulaarne avaldis, L(
) =
; (s.t. tühjale sõnale vastab tühi keel)
T on regulaarne avaldis, L(x) = {x} (s.t. vastav keel koosneb ühest ühetähelisest sõnast);
L(ei);
L(ei), i = 0,1,2,..., s.t. L(e*) =
L(e)
L(e2)
...
Näide 1. Grammatika ({0,1,=}, {Xo, Y, Y1},
Xo, {Xo
Y
= Y, Y
|
Y0 | Y11, Y1
Y10 | Y1}
genereerib keele { w1 = w2 | | w1|1
= |w2|1 mod 2}, s.t. kõik jadad w1
= w2, kus sõnades w1, w2 on sümbolite
"1" esinemiste arv sama paarsusega, s.t. kas mõlemates
paaris või mõlemates paaritu arv. Selle keele tunnistab automaat

(automaadi algolek märgitakse graafil sellesse olekusse suubuva noolena;
lõppolek - kahekorse ringiga)
2.
Lülitusskeemis kaks lülitit juhivad sama pirni - vajutus lüliti
üleval olevale otsale muudab pirni oleku (põleb, ei) vastupidiseks.
Sisendsignaalideks (terminalideks) on v1, p1 , v2,
p2 (vajutused 1. või 2. lüliti vasak- ja parempoolsele
otsale); algolekus on mõlema lüliti parempoolne ots üleval
ja pirn ei põle. Keel koosneb kõikvõimalöikest
terminalide v1, p1 , v2, p2
jadadest, mis panevad pirni põlema (vajutused vöivad olla suvalises
järjekorras lüliti olekust sõltumata), näiteks p1,
p2, p1p1, p1p2v2,
p1v1v2p2, v1v2p2
jne. Leia regulaarne grammatika ja lõplik automaat selle keele genereerimiseks/tunnistamiseks.