112

Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

VÁRTERÉSZ MAGDA

Automaták és formális nyelvek

el®adások

2017/18-as tanév 1. félév

Page 2: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

Tartalomjegyzék

1. El®zetes tudnivalók 4

2. Bevezetés 15

3. Ábécé, szó, formális nyelv 17

4. M¶veletek nyelvekkel 244.1. Boole-m¶veletek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2. Reguláris m¶veletek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3. Reguláris kifejezések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5. Formális rendszerek 325.1. A generatív rendszer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2. A Markov-algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6. Generatív nyelvtanok 416.1. A generatív nyelvtan és az általa generált nyelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.2. A generatív nyelvtanok alkalmazása a programozásban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.3. A Chomsky-féle nyelvosztályok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7. Reguláris nyelvek 547.1. A determinisztikus véges automata mint felismer® . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2

Page 3: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

Tartalomjegyzék 3

7.2. A nemdeterminisztikus véges automata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

7.3. A 3 típusú nyelvek osztályának jellemzése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8. Környezetfüggetlen nyelvek 778.1. Levezetési fák . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

8.2. Chomsky-féle normál alak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

8.3. A Cocke-Younger-Kasami algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

8.4. Nemdeterminisztikus veremautomaták . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

8.5. LL(k) elemzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

9. Környezetfügg® nyelvek 1069.1. Turing-gépek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Irodalomjegyzék 111

Page 4: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

1. fejezet

El®zetes tudnivalók

Különböz® dolgokat (tárgyakat, személyeket, fogalmakat, objektu-mokat stb.) halmazokba sorolhatunk. Az egy halmazba sorolt dolgoka halmaz elemei.

− h eleme a H halmaznak: h ∈ H− h nem eleme a H halmaznak: h 6∈ HA halmazt megadási módjai:

− kapcsos zárójelben felsoroljuk az elemeit: {h1, h2, . . . , hn}− megadunk egy a halmaz elemeit jellemz® tulajdonságot:

{h∣∣ a h elem T tulajdonságú}

4

Page 5: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

5

− A K halmaz a H halmaz részhalmaza, azaz K ⊆ H , ha mindenh ∈ K esetén h ∈ H is.

− Ha K ⊆ H és H ⊆ K, akkor H és K ugyanazon elemeket tar-talmazzák, ilyenkor a két halmazt egyenl®nek nevezzük (jelölése:H = K).

− Pontosan egy olyan halmaz van, amelyiknek nincs eleme, neveüres halmaz, jele ∅.

− Két halmaz diszjunkt, ha nincs közös elemük.

− Egy adott U halmaz összes részhalmazai is halmazt alkotnak,melyet U hatványhalmazának nevezünk, és P(U)-val jelölünk.

Page 6: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6 1. El®zetes tudnivalók

Vezessünk most be m¶veleteket P(U)-n. A H1 és a H2 P(U)-belihalmazok

− uniója: H1 ∪H2 {h | h ∈ H1 vagy h ∈ H2}

− metszete: H1 ∩H2 {h | h ∈ H1 és h ∈ H2}

− különbsége: H1 \H2 {h | h ∈ H1 de h 6∈ H2}

− komplementere: H1 {h | h ∈ U de h 6∈ H1}

P(U)-beli halmaz.

A H1, H2, . . . , Hn (n ≥ 1) nemüres halmazok Descartes-szorzata

H1×H2×. . .×Hn {(h1, h2, . . . , hn) | hi ∈ Hi, i = 1, 2, . . . , n}.

H1×H2× . . .×Hn részhalmazait (n−változós) relációknak nevez-zük.

Page 7: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7

Az R ⊆ H × H kétváltozós vagy binér reláció. ((h1, h2) ∈ Rjelölése ilyenkor gyakran: h1Rh2). Azt mondjuk, hogy az R binérreláció

− re�exív, ha minden h ∈ H-ra hRh;

− irre�exív, ha egyetlen h ∈ H-ra sem igaz, hogy hRh;

− szimmetrikus, ha minden h1, h2 ∈ H-ra, melyre h1Rh2, fennállh2Rh1 is;

− aszimmetrikus, ha egyetlen h1, h2 ∈ H-ra sem teljesül egyszerreh1Rh2 és h2Rh1;

− tranzitív, ha minden h1, h2, h3 ∈ H-ra, melyre h1Rh2 és h2Rh3,teljesül h1Rh3 is;

Page 8: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8 1. El®zetes tudnivalók

Jelölje a H1, H2, . . . , Hn halmazok Descartes-szorzatát H . AzF ⊆ H × K reláció H-ból K-ba képez® n-változós függvény vagym¶velet, ha minden h ∈ H-hoz legfeljebb egy olyan k ∈ K van,amelyre (h, k) ∈ F . Ha az F ⊆ H × K reláció függvény, azF : H → K jelölést használjuk.

− Az F függvényértelmezési tartománya azon H-beli elemek hal-maza (jelölése: Dom(F )), melyekre van olyan k ∈ K, hogy(h, k) ∈ F

− F minden h ∈ Dom(F )-hez egy jól meghatározott k ∈ K elemetrendel, amit F (h)-val jelölhetünk, és az F függvény h helyenfelvett helyettesítési értékének, vagy a h elem képének nevezünk,h-t pedig az F (h) ®sképének hívjuk.

− Az Rng(F ) {F (h)∣∣ h ∈ Dom(F )} halmaz az F értékkészlete.

Természetesen Rng(F ) ⊆ K.

Page 9: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

9

Az F függvény

− szürjektív, ha Rng(F ) = K;

− injektív, ha különböz® elemek képe különböz®;

− bijektív vagy kölcsönösen egyértelm¶, ha szürjektív és injektív.

Ha F injektív függvény, akkor a Rng(F ) képtér minden k eleméhezegyértelm¶en hozzá tudjuk rendelni az ®sképét. Ily módon egy újabbfüggvényt nyerhetünk, amelynek értelmezési tartománya Rng(F ),képtere pedig Dom(F ). Ez a függvény az F inverze, és F−1-gyeljelöljük.Azokat a függvényeket, melyek értelmezési tartománya valamely

n ∈ N0-ra a {0, 1, . . . , n} halmaz, vagy maga a természetes számokhalmaza, véges, illetve végtelen sorozatoknak nevezzük. Ha egy ilyenfüggvény i helyen felvett értékét si-vel jelöljük, akkor s0, s1, . . . , sn,illetve s0, s1, . . . formában adhatjuk meg ®ket.

Page 10: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

10 1. El®zetes tudnivalók

Legyenek ◦ : H ×H → H és • : H ×H → H binér m¶veletek. A◦ m¶velet

− asszociatív, ha minden h1, h2, h3 ∈ H-ra (h1 ◦ h2) ◦ h3 = h1 ◦(h2 ◦ h3);

− kommutatív, ha minden h1, h2 ∈ H-ra h1 ◦ h2 = h2 ◦ h1;− idempotens, ha minden h ∈ H-ra h ◦ h = h.

− disztributív a • m¶veletre nézve, ha minden h1, h2, h3 ∈ H-ra

(h1 • h2) ◦ h3 = (h1 ◦ h3) • (h2 ◦ h3)és

h3 ◦ (h1 • h2) = (h3 ◦ h1) • (h3 ◦ h2).

Page 11: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

11

Egy 〈H ;M〉 pár, ahol M a H-n értelmezett m¶veletek egy hal-maza, algebrai struktúra. H a struktúra alaphalmaza, az M -belim¶veletek a struktúra alapm¶veletei .

− Egy struktúra grupoidoknak , ha egy kétváltozós alapm¶velete van.Ha ez a m¶velet asszociatív, akkor a struktúra félcsoport , ha mégkommutatív is, kommutatív félcsoport .

− Ha a 〈H ; ◦〉 félcsoportban e ∈ H olyan, hogy e ◦ h = h ◦ e = hminden h ∈ H-ra, akkor e 〈H ; ◦〉 neutrális eleme. Egy félcso-portban legfeljebb egy ilyen elem van. Legyen e 〈H ; ◦〉 neutráliseleme. Ha h ∈ H-hoz van olyan h∗ ∈ H , hogy h∗◦h = h◦h∗ = e,akkor h∗ h inverze. Az inverz, ha létezik, egyértelm¶.

− A csoport olyan félcsoport, amelyben van neutrális elem, és min-den elemnek van inverze. Ha a csoport alapm¶velete még kom-mutatív is, Abel-csoportról beszélünk.

Page 12: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

12 1. El®zetes tudnivalók

A 〈H ; •, ◦〉 struktúra− gy¶r¶ , ha 〈H ; •〉 Abel-csoport, 〈H ; ◦〉 félcsoport, és ◦ disztribu-

tív •-ra nézve. A 〈H ; •〉 Abel-csoportot a gy¶r¶ additív csoport-jának , a 〈H ; ◦〉 félcsoportot a gy¶r¶ multiplikatív félcsoportjánaknevezzük. A gy¶r¶ kommutatív , ha a multiplikatív félcsoportjakommutatív. Az additív csoport neutrális elemét a gy¶r¶ nullele-mének nevezzük. Ha 0 a 〈H ; •, ◦〉 gy¶r¶ nulleleme, tetsz®legesh ∈ H-ra 0 ◦ h = h ◦ 0 = 0.

− A 〈H ; •, ◦〉 gy¶r¶ test , ha 〈H ′; ◦〉 csoport, ahol H ′ H-nak a null-elemt®l különböz® elemeit tartalmazza. Ez a csoport a test mul-tiplikatív csoportja. A multiplikatív csoport neutrális elemét atest egységelemének nevezzük. A test kommutatív , ha a multip-likatív csoportja kommutatív.

Page 13: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

13

Ha két halmaz között van bijekció, akkor a két halmazt mennyisé-gileg egybevágónak � ekvivalensnek � tekintjük. Ez a viszony re�exív,szimmetrikus és tranzitív.Minden halmazhoz egyértelm¶en úgy rendelünk egy ún. számossá-

got, hogy az egymással mennyiségileg egybevágó halmazokhoz ugyanaz,az egymással mennyiségileg nem egybevágó halmazokhoz pedig kü-lönböz® számosság tartozzon.(Egy ilyen hozzárendelés nem függvény, hisz egy függvény értel-

mezési tartománya halmaz. Az ilyen hozzárendelést operációnak ne-vezzük. Megjegyezzük, hogy a számosságoperáció létezik ugyan, delétezése nem nyilvánvaló, hanem bizonyításra szorul.)

Page 14: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

14 1. El®zetes tudnivalók

Tetsz®leges n ∈ N0 természetes számra jelölje n a {0, 1, . . . , n−1}halmazt (n = 0 esetén 0 legyen ∅). n elemeinek száma n.

− AH halmaz véges és számossága n, ha van olyan n ∈ N0, melyren és H mennyiségileg egybevágó. Ha n és m különböz® termé-szetes számok, n és m mennyiségileg nem egybevágóak.

−N0 egyetlen n ∈ N0-ra sem egybevágó mennyiségileg az n hal-mazzal, tehát N0 nem véges, azaz végtelen. Ha egy H halmazmennyiségileg egybevágó N0-lal, akkor H-t megszámlálhatóanvégtelen számosságúnak mondjuk és ezt ℵ0-lal jelöljük.

− Belátható az is, hogy P(N0) végtelen, de mennyiségileg nem egy-bevágó N0-lal. A P(N0)-lal mennyiségileg egybevágó halmazoknem megszámlálhatóak, azt mondjuk, hogy kontinuum számos-ságúak.

Page 15: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

2. fejezet

Bevezetés

A hallgatóság által már el®zetesen használt formális nyelvek:

• programozási nyelvek,

• a matematikai logika nyelve,

• stb.A formális nyelvek elmélete módszereket ad

• formális nyelvek de�niálására,

• a formális elemek nyelvhez való tartozásának eldöntésére,

• a nyelvi elemek struktúrájának felismerésére.15

Page 16: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

16 2. Bevezetés

Az el®adáson használt nyelvek

• a magyar nyelv mint természetes nyelv,

• a matematika nyelve: a matematika szimbólumaival kevert ter-mészetes nyelv,

• az el®adáson példaként szerepl® formális nyelvek.

A szimbólum fogalmát alapfogalomnak tekintjük, ezért formálisannem is de�niáljuk. A szimbólum lehet írott jel, egy anyag mágnese-zettségi foka, egy jelzés vagy állapot megléte, ill. hiánya stb.

Page 17: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

3. fejezet

Ábécé, szó, formális nyelv

3.1. definíció.•Ábécé: szimbólumok (bet¶k) tetsz®leges véges, nemüres hal-maza. Az ábécét alkotó szimbólumokról feltesszük, hogy külön-böznek egymástól külön-külön is, csoportosítva is.

• Legyen V egy ábécé. V feletti szó: V -beli szimbólumok végessorozata. Az ábécé szimbólumaiból álló a1, a2, . . . , an (n ≥ 1)sorozat mint szó jelölése: a1a2 . . . an. Az üres sorozatot üresszónak nevezzük és λ-val jelöljük.

• V feletti nyelv: V feletti szavak tetsz®leges halmaza. A V felettiösszes szót tartalmazó nyelv a teljes nyelv, ezt V ∗-gal jelöljük.

17

Page 18: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

18 3. Ábécé, szó, formális nyelv

3.2. definíció. Egy v ∈ V ∗ szó hosszán a szót alkotó V -beliszimbólumok számát értjük, és ezt `(v)-vel jelöljük.

Jelölje v az a1 . . . an és w a b1 . . . bm V ∗-beli szavakat. Ekkor `(v) =n és `(w) = m.

3.3. definíció. A v és w szavak azonosak, azaz v = w, ha `(v) =`(w) és minden i = 1, . . . , `(v) esetén ai = bi.

3.4. definíció. A v és w szavak konkatenációja az

a1 . . . anb1 . . . bm

V ∗-beli szó. Jele: vw.

3.5. tétel. V ∗ a konkatenációval (mint kétváltozós m¶velettel) egység-elemes félcsoportot alkot.

Bizonyítás vázlat. A konkatenáció asszociatív, mert (uv)w =u(vw) és λ egységelem, mert λv = vλ = v minden u, v, w ∈ V ∗

esetén.

Page 19: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

19

3.6. definíció. De�niáljuk szavak hatványát. Legyen v0 λ ésminden n ≥ 1 esetén vn vn−1v.

3.7. definíció. A v szó a w szó részszava, ha vannak olyan x, y ∈V ∗ szavak, hogy w = xvy és valódi részszava, ha még xy 6= λ ésv 6= λ is. A w szó v részszava kezd®szelete w-nek, ha x = λ, ésvalódi kezd®szelete, ha x = λ, v 6= λ és y 6= λ.

3.8. definíció. Egy v = a1a2 . . . an−1an szó tükörképén az

anan−1 . . . a2a1

szót értjük, és v−1-gyel jelöljük.

3.9. tétel. Tetsz®leges v ∈ V ∗ szóra és n ≥ 0 esetén

(v−1)−1 = v és (vn)−1 = (v−1)n.

Page 20: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

20 3. Ábécé, szó, formális nyelv

3.10. példa.

• V1 = {a, b, c} egy ábécé,aabab egy szó, melynek hossza 5, azaz `(aabab) = 5,az aba szó pedig egyik részszava.A V1 ábécé feletti teljes nyelv:

V ∗1 = {λ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, . . .},egy további nyelv:

LV1 = {λ, abc, aabbcc, aaabbbccc, . . .} = {anbncn | n ≥ 0}.

• V2 = {0, 1} egy másik ábécé, mely feletti nyelvek példáula kettes számrendszerben felírt páratlan számok nyelve:

LV21 = {1, 1v1 | v ∈ V ∗2 },

vagy az egy bájton leírható szavak halmaza

LV22 = {v | v ∈ V ∗2 és `(v) = 8}

Page 21: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

21

.

• A V3 = {if, then, else, for, do, a, b, c} ábécé feletti szó:

if b then a else c

Ennek a szónak a hossza 6.

• Bármilyen ábécé felett nyelv

� az egyetlen szót sem tartalmazó üres nyelv (üres halmaz)

� és az egyetlen szót, épp az üres szót tartalmazó nyelv, a {λ}nyelv.

A félév során olyan nyelvekkel foglalkozunk, amelyek megadhatókvégesen speci�kálható eszközökkel: generatív nyelvtanokkal éskülönböz® típusú automatákkal.

Page 22: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

22 3. Ábécé, szó, formális nyelv

3.11. definíció. Legyen V1 és V2 két tetsz®leges, nem feltétlenülkülönböz® ábécé. A V ∗1 -ot V

∗2 -ra képez® függvényeket szófüggvé-

nyeknek nevezzük. Egy f : V ∗1 → V ∗2 szófüggvény

• hossztartó, ha `(f (v)) = `(v) minden v ∈ V ∗1 esetén;• kezd®szelettartó, ha f (uv) = f (u)w minden u, v ∈ V ∗1 eseténvalamilyen w ∈ V ∗2 -re.

3.12. példa.

• A szavak tükörképét el®állító szótükröz® szófüggvény hossztartó:

tükörkép(v) v−1.

• A fej szófüggvény kezd®szelettartó:

fej(v)

{λ, ha v = λ,v els® bet¶je egyébként.

• A törzs szófüggvény kezd®szelettartó: törzs(v) az a szó, melyre av = fej(v)törzs(v) egyenl®ség teljesül.

Page 23: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

23

Elemi szóm¶veletek azok a szófüggvények, amelyek a jellegzetesgépelési hibákat korrigálják:

• egy bet¶ beszúrása a szóba, adott helyre;

• egy adott helyen lév® bet¶ törlése a szóból;

• egy adott helyen lév® bet¶ másikra való kicserélése;

• adott helyen lév® két szomszédos bet¶ felcserélése.

Két szó távolságán azon elemi szóm¶veletek minimális számát ért-jük, amelyek alkalmazásával az egyik szóból el®áll a másik.Mi csak az els® két elemi szóm¶velettel foglalkozunk. Jelölje av = a1a2 . . . an és a w = b1b2 . . . bm szavak távolságát d(n,m):

d(i, j)

i + j, ha i = 0 vagy j = 0,d(i− 1, j − 1), ha ai = bj,min {d(i− 1, j), d(i, j − 1)} + 1, egyébként.

Page 24: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

4. fejezet

M¶veletek nyelvekkel

4.1. Boole-m¶veletek

4.1. definíció. Tesz®leges L1, L2 ⊆ V ∗ nyelvek esetén értelmez-het® a nyelvek (mint halmazok)

• uniója: (L1 ∪ L2) {v | v ∈ L1 vagy v ∈ L2}•metszete: (L1 ∩ L2) {v | v ∈ L1 és v ∈ L2}• különbsége: (L1 \ L2) {v | v ∈ L1 de v 6∈ L2}• komplementere: L1 {v | v ∈ V ∗ de v 6∈ L1}Ezeket a m¶veleteket Boole-m¶veleteknek nevezzük.

24

Page 25: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

4.2. Reguláris m¶veletek 25

4.2. Reguláris m¶veletek

4.2. definíció. Nyelvek között az alábbi ún. reguláris m¶vele-teket is de�niálhatjuk:

• összedás: (L1 + L2) L1 ∪ L2• szorzás: (L1L2) {vw | v ∈ L1 és w ∈ L2}• iteráció: L∗ {λ} + L + (LL) + (LLL) + . . .

4.3. megjegyzés. Tetsz®leges V ábécé esetén V egyúttal nyelv és

V ∗ = {λ} + V + (V V ) + (V V V ) + . . . .

Tehát a V ∗ jelölés konzekvens.

Page 26: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

26 4. M¶veletek nyelvekkel

4.4. tétel. A V feletti nyelvek halmazán értelmezett

• összeadás: kommutatív és asszociatív, zéruselem az üres nyelv,

• szorzás: asszociatív, egységelem a {λ} nyelv.A két m¶velet együtt disztributív.

Vizsgálni fogjuk bizonyos nyelvosztályok m¶veletekre vonatkozózártsági tulajdonságait.

4.5. definíció. A L nyelvosztály zárt egy nyelveken értelmezhet®m¶veletre nézve, ha valahányszor L-beli nyelveken végezzük el am¶veletet, mindannyiszor L-beli nyelvet kapunk eredményül.

Page 27: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

4.3. Reguláris kifejezések 27

4.3. Reguláris kifejezések

4.6. definíció. A V ábécé feletti reguláris kifejezések azon és csakazon szavai a (V ∪ {∅, (, ),+,∗ })∗ nyelvnek, melyeket a következ®szabályok véges sokszori alkalmazásával állíthatunk el®:

• ∅ reguláris kifejezés.•Minden a ∈ V reguláris kifejezés.

• Ha R1 és R2 reguláris kifejezések, akkor (R1 + R2), (R1R2) ésR∗1 is reguláris kifejezések.

4.7. példa. A V = {a, b} ábécé feletti reguláris kifejezések:

∅∗, (a + b)∗, ((ab)a∗).

Page 28: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

28 4. M¶veletek nyelvekkel

4.8. definíció. Legyen R egy V ábécé feletti reguláris kifejezés.Az R által reprezentált LR nyelv a következ®:

• Ha R = ∅ (mint szimbólum), akkor LR = ∅ (mint nyelv).

• Ha R = a, akkor LR = {a}.• Ha R = (R1 +R2), akkor LR = LR1

+ LR2.

• Ha R = (R1R2), akkor LR = LR1LR2

.

• Ha R = R∗1, akkor LR = L∗R1.

Egy L ⊆ V ∗ nyelv reguláris nyelv, ha van olyan V feletti reguláriskifejezés, mely reprezentálja.

Page 29: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

4.3. Reguláris kifejezések 29

4.9. példa. A fenti reguláris kifejezések az alábbi reguláris nyelve-ket határozzák meg:

• L∅∗ = L∗∅ = {λ} + ∅ + (∅∅) + . . . = {λ}• L(a+b)∗ = L∗

(a+b)= (La + Lb)

∗ = {a, b}∗ == {λ, a, b, aa, ab, ba, bb, . . .}• L((ab)a∗) = L(ab)La∗ = (LaLb)L

∗a =

= {ab}{λ, a, aa, aaa, . . .} = {ab, aba, abaa, abaaa, . . .}

Page 30: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

30 4. M¶veletek nyelvekkel

4.10. tétel. A reguláris nyelvek osztálya zárt a reguláris m¶vele-tekre nézve.

Bizonyítás. Legyenek L1, L2 reguláris nyelvek, azaz vannak olyanR1 és R2 reguláris kifejezések, melyekre LR1

= L1 és LR2= L2.

Ekkor a 4.6. de�níció szerint (R1 + R2), (R1R2) és R∗1 is regu-láris kifejezések. Továbbá a 4.8 de�níció értelmében L(R1+R2)

=

L1+L2, L(R1R2)= L1L2 és LR∗1

= L∗1. Tehát az (L1+L2), (L1L2)és az L∗1 nyelvek is reprezentálhatók reguláris kifejezéssel, ezért re-gulárisak.

Page 31: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

4.3. Reguláris kifejezések 31

4.11. tétel.Minden véges nyelv reguláris.

Bizonyítás. Legyen V egy ábécé és L ⊆ V ∗ egy véges nyelv.

• Ha L = ∅, akkor L reguláris, hisz az ∅ reguláris kifejezés repre-zentálja.

• Ha L = {λ}, akkor is reguláris L, az ∅∗ reguláris kifejezés repre-zentálja.

• Ha L = {a1a2 . . . an}, mivel az {ai} minden 1 ≤ i ≤ n-rereguláris nyelv (ai reprezentálja), és L ezek szorzata, a zártságmiatt L is reguláris.

• Ha L = {v1, v2, . . . , vm}, mivel L = {v1} + {v2} + . . . + {vm},és minden 1 ≤ j ≤ m-re {vj} reguláris nyelv, a zártság miattösszegük, azaz L is az.

Page 32: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

5. fejezet

Formális rendszerek

5.1. definíció. Az F = 〈V,H〉 pár egy formális rendszer, ahol

• V egy ábécé,

•H ⊂ V ∗×V ∗ nem üres, véges halmaz, helyettesítési szabályokhalmaza.

H tulajdonképpen egy V ∗ feletti binér reláció:az (x, y) ∈ H helyettesítési szabály szokásos jelölése x→ y, és úgyolvassuk, hogy az x szó helyettesíthet® az y szóval.

32

Page 33: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

33

5.2. definíció. Az F = 〈V,H〉 formális rendszerben a v ∈ V ∗

szóból közvetlenül levezethet® a w ∈ V ∗ szó, ha vannak olyanu1, u2 ∈ V ∗ szavak és van olyan x→ y ∈ H , hogy

v = u1xu2 és w = u1yu2.

Ezt a tényt v ⇒ w-vel jelöljük.

5.3. definíció. Az F = 〈V,H〉 formális rendszerben a v ∈ V ∗

szóból levezethet® a w ∈ V ∗ szó, ha vagy v = w, vagy van olyanu0, u1, . . . , un ∈ V ∗ szósorozat (n ≥ 1), hogy

u0 = v, un = w, és ui⇒ ui+1 minden 0 ≤ i ≤ n− 1 esetén.

Jelölése: v ⇒∗ wSzóproblémának nevezzük azt a kérdést, hogy egy adott F for-

mális rendszerben egy adott v szóból levezethet®-e vagy sem egyadott w szó. A szóprobléma algoritmikusan nem eldönthet® prob-léma.

Page 34: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

34 5. Formális rendszerek

5.4. példa. Az

〈{a, b, c, d}, {ba→ ab, caa→ ca, bbc→ bc, c→ ccc, λ→ d}〉formális rendszerben fennállnak az

• abc⇒∗ abc• bbabcab⇒∗ abcabrelációk, de nem igaz, hogy abcab ⇒∗ bbabcab. A fenti formálisrendszer néhány tulajdonsága:

• A c és d bet¶ket nem tartalmazó részszavak az els® szabály alkal-mazásával (bet¶k szerint) rendezhet®k.

• A c bet¶t közvetlen követ® a-k, illetve a c bet¶t közvetlen meg-el®z® b-k egy kivételével eltüntethet®k.

• A c-k száma kettesével növelhet®.

• Bárhová írható d.

Page 35: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

35

5.5. feladat. Legyen V = {a, b} egy ábécé. Adjunk meg helyet-tesítési szabályoknak olyan rendszerét, amely mellett

• tetsz®leges v ∈ V ∗-b®l tetsz®leges w ∈ V ∗ levezethet®;• v ⇒∗ w pontosan akkor, ha `(v) = `(w).

Page 36: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

36 5. Formális rendszerek

5.1. A generatív rendszer

5.6. definíció. AW = 〈V,A,H〉 hármast generatív rendszerneknevezzük, ahol

• 〈V,H〉 egy formális rendszer,

• A ⊂ V ∗ véges halmaz, axiómák halmaza.

W-hez hozzárendelünk egy V feletti nyelvet, az ún. W által gene-rált nyelvet:

LW {w ∈ V ∗ | van olyan v ∈ A, hogy v ⇒∗ w}5.7. példa. Az 〈{a, b}, {λ, a, b, ab}, {a → aa, b → bb}〉generatív rendszer az {anbm | n,m ≥ 0} nyelvet generálja.5.8. feladat. Adjuk meg, melyik nyelvet generálja az

〈{a, +, ·, (, )}, {a}, {a→ a + a, a→ a · a, a→ (a)}〉generatív rendszer.

Page 37: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

5.1. A generatív rendszer 37

5.9. példa. Legyen adva a V = {a, b} ábécé feletti {anbn | n ≥ 0}nyelv. Célunk meghatározni, melyik generatív rendszer generál-hatná:

〈V, {λ, ab}, {ab→ aabb}〉

5.10. feladat. Adjuk meg, melyik generatív rendszerrel generál-ható az V = {a, b, c} ábécé feletti

{v ∈ V ∗ | v egyenl® számú a-t b-t és c-t tartalmaz}nyelv.

5.11. megjegyzés. A generatív rendszer kifejez®ereje gyakran nemelegend®. Például az olyan egyszer¶ nyelvet, mint az

{v ∈ {a, b}∗ | v = tükörkép(v)},sem lehet megadni generatív nyelvtannal.

Page 38: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

38 5. Formális rendszerek

5.2. A Markov-algoritmus

5.12. definíció. AMarkov-algoritmus egy olyanM = 〈V,H,Z〉hármas, ahol

• 〈V,H〉 egy formális rendszer,

•H = {x1→ y1, . . . , xm→ ym} a felsorolás szerint rendezett, és

• Z ⊆ H pedig az ún. záróhelyettesítések halmaza.

5.13. definíció. Az M Markov-algoritmus alkalmazható a v ∈V ∗ szóra, ha van olyan helyettesítési szabály, amelynek a bal oldalarészszava v-nek.

Page 39: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

5.2. A Markov-algoritmus 39

5.14. definíció. LegyenM alkalmazható a v szóra, továbbá legyenxi → yi a rendezés szerinti els® olyan helyettesítési szabály, amely-nek a bal oldala részszava v-nek. Válasszuk az u1 részszót úgy, hogyv = u1xiu2, de xi az u1xi szóban csak egyszer forduljon el®. A vszóra M alkalmazásának eredménye a w = u1yiu2 szó. Jelölése:ha xi→ yi ∈ Z, akkor v ⇒ .w, egyébként v ⇒ w.

5.15. definíció. Az M = 〈V,H,Z〉 Markov-féle algoritmusban av ∈ V ∗ szóból levezethet® a w ∈ V ∗ szó, ha• vagy v = w,

• vagy van olyan u0, u1, . . . , un ∈ V ∗ szósorozat (n ≥ 1), hogy

� u0 = v, un = w, és ui⇒ ui+1 minden 0 ≤ i ≤ n−2 esetén,� továbbá vagy un−1 ⇒ .un, vagy un−1 ⇒ un és un-re M nemalkalmazható.

Jelölése: v ⇒∗ w.

Page 40: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

40 5. Formális rendszerek

5.16. példa.

• A 〈{a, b, c}, {ba→ ab, ca→ ac, cb→ bc}, {}〉Markov-algoritmusa v ∈ {a, b, c}∗ szavakban rendezi a bet¶ket.

• A 〈{a, b, ′}, {a → λ, ′b → bb′, ′ → λ, b → ′b}, {′ → λ}〉Markov-algoritmus a v ∈ {a, b}∗ szavakból törli az a-kat és dup-lázza a b-ket.

Page 41: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6. fejezet

Generatív nyelvtanok

6.1. A generatív nyelvtan és az általa generált nyelv

6.1. definíció.Generatív nyelvtannak egy 〈Vn, Vt, S,H〉 né-gyest nevezünk, ahol

• Vn egy ábécé, a nemterminális bet¶k ábécéje,

• Vt egy ábécé, a terminális bet¶k ábécéje, amire Vn ∩ Vt = ∅,• S ∈ Vn a kezd® szimbólum,

•H pedig olyan α → β helyettesítési szabályok véges halmaza,melyekben α, β ∈ (Vn∪ Vt)∗, és az α-ban van legalább egy nem-terminális bet¶.

41

Page 42: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

42 6. Generatív nyelvtanok

6.2. megjegyzés. Tehát ha V = Vn ∪ Vt, akkorH ⊂ (V ∗ \ V ∗t )× V ∗.

6.3. példa. Az

〈{S,A}, {a, b}, S, {S → aAb, aA→ aaAb, A→ λ}〉négyes egy generatív nyelvtan.

6.4. definíció. LegyenG = 〈Vn, Vt, S,H〉 egy generatív nyelvtan.G-hez hozzárendelünk egy Vt feletti LG nyelvet az ún. G nyelvtanáltal generált nyelvet:

LG = {v ∈ V ∗t | S ⇒∗ v}.6.5. példa. Az 6.3. példabeli nyelvtan esetén érvényes az

S ⇒ aAb⇒ aaAbb⇒ aaaAbbb⇒ aaabbb

levezetés. Könny¶ belátni, hogy e nyelvtan által generált nyelv az

{anbn | n ≥ 1}.

Page 43: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6.1. A generatív nyelvtan és az általa generált nyelv 43

6.6. definíció. Két generatív nyelvtan ekvivalens, ha ugyanazta nyelvet generálják.

6.7. példa. Az 6.3. generatív nyelvtan és a

〈{S}, {a, b}, S, {S → aSb, S → ab}〉generatív nyelvtan is az

{anbn | n ≥ 1}nyelvet generálják, tehát a két generatív nyelvtan ekvivalens egy-mással.

Általános esetben a következ® jelölések lesznek érvényben:

• az a, b, c, d szimbólumok Vt bet¶i,

• az u, v, w, x, y, z szimbólumok V ∗t szavai,

• az A,B,C, . . . , S szimbólumok Vn bet¶i,

• az α, β, γ, δ szimbólumok (Vt ∪ Vn)∗ szavai.

Page 44: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

44 6. Generatív nyelvtanok

6.2. A generatív nyelvtanok alkalmazása a programozásban

A programozási nyelvek esetén alapvet® fontosságú, hogy

• a programozó tudja, milyen formai szabályokat kell betartani aprogram írásakor, és hogy

• a fordítóprogram ellen®rizni tudja, betartotta-e a programozó eze-ket a szabályokat.

Most egy olyan generatív nyelvtant adunk meg, ami egy egyszer¶programozási nyelv programjait (szavait) generálja. Tehát ha en-nek a grammatikának a helyettesítési szabályait �gyelembe vesszükegy szó leírásakor, az a programozási nyelvünkben egy program lesz,és a fordítóprogram lefordítja. Ha hibázunk a helyettesítési szabá-lyok alkalmazása során, az eredmény nem program, amit a fordítófelismer.

Page 45: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6.2. A generatív nyelvtanok alkalmazása a programozásban 45

A programozási nyelvünket (Pro) megadó generatív nyelvtan legyena következ®:

Vn { 〈program〉, 〈 utasításlista〉, 〈 utasítás〉,〈értékadó〉, 〈 feltételes〉, 〈 ciklus〉, 〈 blokk〉,〈reláció〉, 〈kifejezés〉, 〈tag〉,〈relációjel〉, 〈m¶veleti jel〉,〈változó〉, 〈 konstans〉 }

Vt { ;, :=, if, then, else, while, do, begin, end,

<,>,=,+, ∗, x, y, z, 0, 1 }

S 〈program〉

Page 46: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

46 6. Generatív nyelvtanok

H {〈program〉 → 〈utasításlista〉〈utasításlista〉 → 〈utasítás〉 | 〈utasítás〉 ; 〈utasításlista〉〈utasítás〉 → 〈értékadó〉 | 〈feltételes〉 | 〈ciklus〉 | 〈blokk〉〈értékadó〉 → 〈változó〉 := 〈kifejezés〉〈feltételes〉 → if 〈reláció〉 then 〈utasítás〉 else 〈utasítás〉〈ciklus〉 → while 〈reláció〉 do 〈utasítás〉〈blokk〉 → begin 〈utasításlista〉 end

〈reláció〉 → 〈kifejezés〉 〈relációjel 〉 〈kifejezés〉〈kifejezés〉 → 〈tag〉 | ( 〈kifejezés〉〈m¶veleti jel〉〈kifejezés〉 )〈tag〉 → 〈változó〉 | 〈konstans〉〈relációjel〉 → < |> |=〈m¶veleti jel〉 → + | ∗〈változó〉 → x | y | z〈konstans〉 → 0 | 1}

Page 47: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6.2. A generatív nyelvtanok alkalmazása a programozásban 47

• A generatív nyelvtan által generált Pro programra példa:

x := 0;z := 1;while x < z do

begin x := ((x + 1) + 1);z := (z ∗ x);

end

• Az alábbi jelsorozatok viszont nem programok Pro-ban:

x := 0;z := 〈konstans〉;while x < z do

begin x := ((x + 1) + 1);z := (z ∗ x);

end

Page 48: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

48 6. Generatív nyelvtanok

x := 0z := 1;while x < z do

begin x := ((x + 1) + 1);z := (z ∗ x);

end

x := 0;z := 1;while x := z do

begin x := ((x + 1) + 1);z := (z ∗ x);

end

A megírt szöveg ugyanis pontosan akkor Pro program, ha levezet-het® a 〈program〉 nemterninálisból a H helyettesítési szabályok al-kalmazásával, és már csupa terminális szimbólumot tartalmaz.

Page 49: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6.3. A Chomsky-féle nyelvosztályok 49

6.3. A Chomsky-féle nyelvosztályok

Chomsky a generatív nyelvtanok helyettesítési szabályaira vonatkozókülönböz® megszorítások alapján négy nyelvtantípust de�niált.

6.8. definíció. A G = 〈Vn, Vt, S,H〉 generatív nyelvtan

• 0 típusú (mondatszerkezet¶), ha nincs megszorításunk.

• 1 típusú (környezetfügg®), ha H minden eleme αAβ → αγβalakú, ahol A ∈ Vn, α, β, γ ∈ (Vn ∪ Vt)∗ és γ 6= λ. Ez alól csakaz S → λ alakú szabály lehet a kivétel, ekkor azonban S nemszerepelhet egyetlen helyettesítési szabály jobb oldalában sem.

• 2 típusú (környezetfüggetlen), ha H minden eleme A → αalakú, ahol A ∈ Vn, α ∈ (Vn ∪ Vt)∗.• 3 típusú (jobblineáris), ha H minden eleme A→ x vagy A→xB alakú, ahol A,B ∈ Vn, x ∈ V ∗t .

Page 50: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

50 6. Generatív nyelvtanok

6.9. példa. • Az 6.3. példában a generatív nyelvtan 0 típusú.

• 1 típusú vagy környezetfügg® nyelvtan:〈{S,A,B,C}, {a, b, c}, S, {S → aSAC, S → abC,CA→ BA,BA→ BC,BC → AC, bA→ bb, C → c}〉• A Pro nyelvet generáló nyelvtan 2 típusú vagy környezetfüggetlen.

• 3 típusú vagy jobblineáris nyelvtan:〈{S}, {0, 1}, S, {S → 0, S → 1, S → 0S, S → 1S}〉

6.10. megjegyzés. Nyilvánvaló, hogy

• minden nyelvtan 0 típusú is,

• minden 3 típusú nyelvtan egyben 2 típusú is,

• de a 2 és 3 típusú nyelvtanok nem mind 1 típusúak, hisz az el®b-biekben az A → λ alakú szabályok el®fordulhatnak, míg az 1típusú nyelvtanokban csak a speciális S → λ esetben.

Page 51: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6.3. A Chomsky-féle nyelvosztályok 51

6.11. tétel. (Üresszólemma)Minden 2 típusú (környezetfüg-getlen) nyelvtanhoz megadható vele ekvivalens 1 típusú (környezet-függ®) nyelvtan.

Bizonyítás vázlat. Legyen G = 〈Vn, Vt, S,H〉 egy környezet-független nyelvtan. Ekvivalens átalakítások sorozatával el fogunkjutni egy G′′′ környezetfügg® nyelvtanhoz. Legyen V = Vn ∪ Vt.

• Vezessünk be egy új S′ nemterminális bet¶t, egy új S′ → Sszabályt, és legyen S helyett S′ az új kezd® bet¶. A G′ = 〈Vn ∪{S′}, Vt, S′, H ∪ {S′→ S}〉 ekvivalens G-vel.

• Ha A → αBβ,B → λ, de A 6→ αβ (A,B ∈ Vn, α, β ∈ V ∗),akkor b®vítsük a szabályok halmazát az A → αβ szabállyal.Az átalakítás ekvivalens nyelvtanhoz vezet. Véges sok ilyen lépésután már nem lehet tovább b®víteni, így eljutunk egy olyan G′′ =〈Vn∪{S′}, Vt, S′, H ′′〉 környezetfüggetlen nyelvtanhoz, amely az

Page 52: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

52 6. Generatív nyelvtanok

eredetivel ekvivalens, S′ csak az S′→ S szabályban fordul el®, ésha A → αBβ,B → λ (A,B ∈ Vn, α, β ∈ V ∗), akkor A → αβis teljesül.

• Hagyjuk el H ′′-b®l a B → λ alakú szabályokat, ahol B ∈ Vn,de B 6= S′. A generált nyelv ezzel az átalakítással sem változott.G′′′ viszont már nemcsak 2, hanem 1 típusú is.

6.12. definíció. Egy a V ábécé feletti L nyelv i típusú, ha vanolyan i típusú G = 〈Vn, V, S,H〉 generatív nyelvtan, ami éppen azL nyelvet generálja.

6.13. megjegyzés. Az i típusú nyelvek osztályát jelölje Li. A be-vezetett nyelvosztályokat Chomsky-féle nyelvosztályoknak ne-vezzük. Bizonyítható, hogy a

L3 ⊂ L2 ⊂ L1 ⊂ L0tartalmazások érvényesek. Ez a Chomsky-féle nyelvhierarchia.

Page 53: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

6.3. A Chomsky-féle nyelvosztályok 53

6.14. definíció. Egy A → B (A,B ∈ Vn) alakú helyettesítésiszabályt átnevezésnek nevezünk.

6.15. lemma.Minden i típusú nyelvtanhoz megadható vele ekvi-valens átnevezéseket nem tartalmazó i típusú nyelvtan.

Bizonyítás vázlat. Legyen G = 〈Vn, Vt, S,H〉. Ekvivalens át-alakításokkal eljutunk egyG′′′ = 〈Vn, Vt, S,H ′′′〉 átnevezéseket nemtartalmazó ugyanolyan típusú nyelvtanhoz.

• Ha az A → B ∈ H és B → C ∈ H (A,B,C ∈ Vn), akkorvegyük fel a helyettesítési szabályok közé azA→ C átnevezéseketis, mindaddig, amíg H b®víthet®.

• HaA→ B ∈ H ′ ésB → α ∈ H (A,B ∈ Vn, de α 6∈ Vn), akkorvegyük fel a helyettesítési szabályok közé az A→ α szabályokat.

• Legyen H ′′′ azon H ′′-beli szabályok halmaza, melyek nem átne-vezések. A nyelvtan típusa és a generált nyelv nem változott.

Page 54: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7. fejezet

Reguláris nyelvek

7.1. A determinisztikus véges automata mint felismer®

7.1. definíció. Az A = 〈Q, V, δ, q0, Qv〉 rendezett ötöst deter-minisztikus véges automatának nevezzük, ahol

• Q 6= ∅ véges halmaz, elemei az ún. bels® állapotok,

• V egy bemen® ábécé,

• δ : Q× V → Q az állapotátmenet-függvény,

• q0 ∈ Q a kezd®állapot,

• Qv ⊆ Q a végállapotok halmaza.

54

Page 55: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.1. A determinisztikus véges automata mint felismer® 55

7.1. ábra. A véges automata mint felismer®

Egy A determinisztikus véges automata m¶ködését a következ®-képpen írhatjuk le:Legyen a1a2 . . . an ∈ V ∗ a bemen® szó.1. lépés: A q0 kezd®állapotban az automata beolvassa a bemen® szó

els® bet¶jét, aminek hatására a p1 = δ(q0, a1) állapotba kerül.

2. lépés: A p1 állapotban az automata beolvassa a bemen® szó kö-vetkez® bet¶jét, aminek hatására a p2 = δ(p1, a2) állapotba kerül.

...

n. lépés: A pn−1 állapotban az automata beolvassa a bemen® szóutolsó bet¶jét, aminek hatására a pn = δ(pn−1, an) állapotbakerül.Ha pn ∈ Qv, akkor az A automata felismerte (elfogadta) az

a1a2 . . . an bemen® szót, ha pedig pn 6∈ Qv, akkor az A nem is-

Page 56: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

56 7. Reguláris nyelvek

merte fel (visszautasította) a bemen® szót.

7.2. példa. Tekintsük a 〈{q0, q1, q2}, {0, 1}, δ, q0, {q2}〉 automatát,melynek állapotátmenet-függvénye a következ®:

δ(q0, 0) = q0 δ(q0, 1) = q1δ(q1, 0) = q0 δ(q1, 1) = q2δ(q2, 0) = q0 δ(q2, 1) = q2

• A 011011 szóra az automata bels® állapotainak a

q0, q0, q1, q2, q0, q1, q2

sorozatát kapjuk. Az automata ezt a szót felismerte, hiszen q2végállapot.

• Az 1101 bemen® szóra az automata bels® állapotainak a

q0, q1, q2, q0, q1

sorozatát kapjuk. q1 nem végállapot, így az automata ezt a szótnem ismerte fel.

Page 57: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.1. A determinisztikus véges automata mint felismer® 57

7.3. definíció. Legyen A = 〈Q, V, δ, q0, Qv〉 egy determinisztikusvéges automata. Az

LA = {v ∈ V ∗ | A felismerte v-t }V feletti nyelvet az A automata által felismert nyelvnek nevez-zük.

7.4. példa. A 7.2. példabeli automata által felismert nyelv:

L = {v11 | v ∈ {0, 1}∗}.

7.5. definíció. Két determinisztikus véges automata ekvivalens,ha ugyanazt a nyelvet ismerik fel.

Page 58: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

58 7. Reguláris nyelvek

7.6. definíció. Egy determinisztikus véges automata minimális,ha az állapotainak száma nem haladja meg egyetlen, vele ekvivalensdeterminisztikus véges automata állapotainak számát.

7.7. definíció. Egy determinisztikus véges automata p és q álla-pota ekvivalens egymással, ha tetsz®leges bemen® szóra

1. vagy mindkét állapotból végállapotba jutunk,

2. vagy egyik állapotból sem jutunk végállapotba.

Ha a két állapot nem ekvivalens egymással, akkor a két állapotmeg-különböztethet®.

Page 59: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.1. A determinisztikus véges automata mint felismer® 59

Módszer determinisztikus véges automaták minimalizálására.

1. Jelöljük meg ∗-gal az összes olyan állapotpárt, melyben az egyikvégállapot, a másik pedig nem.

2. Minden jelöletlen állapotpárhoz rendeljünk egy üres listát.

3. Válasszunk egy jelöletlen állapotpárt. Minden bet¶re gy¶jtsükössze, hogy az állapotátmenet során milyen állapotpárokat nyer-nénk a pár állapotaiból. Ha a nyert állapotpárok között

(a) van ∗-gal jelölt, jelöljük meg ∗-gal a vizsgált jelöletlen párt éshozzá a listában tartozó párokat.

(b) nincs ∗-gal jelölt, akkor írjuk be a nyert állapotpárokhoz tar-tozó listákba a vizsgált állapotpárt (amikor pár állapotai kü-lönböz®ek).

4. Ha már nincs ki nem választott jelöletlen állapotpár, vonjuk összea jelöletlen (ekvivalens) állapotokat, egyébént folytassuk 3-mal.

Page 60: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

60 7. Reguláris nyelvek

7.2. A nemdeterminisztikus véges automata

7.8. definíció. Az A = 〈Q, V, δ, q0, Qv〉 rendezett ötöst nemde-terminisztikus véges automatának nevezzük, ahol

• Q 6= ∅ véges halmaz, elemei az ún. bels® állapotok,

• V egy bemen® ábécé,

• δ : Q× V → P(Q) az állapotátmenet-függvény,

• q0 ∈ Q a kezd®állapot,

• Qv ⊆ Q a végállapotok halmaza.

Page 61: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.2. A nemdeterminisztikus véges automata 61

Egy A nemdeterminisztikus véges automata m¶ködése:Legyen a1a2 . . . an ∈ V ∗ a bemen® szó.

1. lépés: A q0 kezd®állapotban az automata beolvassa a bemen® szóels® bet¶jét, aminek hatására a {p11, p12, . . . , p1k1} = δ(q0, a1)leheteséges állapotok valamelyikébe kerül. Legyen

Q1 = {p11, p12, . . . , p1k1}.

2. lépés: Ha a p1i ∈ Q1 állapotba került, az automata beolvassa abemen® szó következ® bet¶jét, aminek hatására aQ(i) = δ(p1i, a2)állapotok valamelyikébe kerül (1 ≤ i ≤ k1). Tehát az a2 beolva-sásának hatásásra az automata a

Q2 = Q(1) ∪Q(2) ∪ . . . ∪Q(k1)

állapotok egyikében van....

Page 62: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

62 7. Reguláris nyelvek

n. lépés: Az el®z® lépés eredményeképpen lehetséges valamely p ál-lapotban az automata beolvassa a bemen® szó utolsó bet¶jét,aminek hatására a δ(p, ak) állapotok valamelyikébe kerül. Ezenlehetséges állapotok halmaza legyen Qn.

Ha van olyan p ∈ Qv, hogy p ∈ Qn, akkor az A automata felis-merte (elfogadta) az a1a2 . . . an bemen® szót, egyébként az A nemismerte fel (visszautasította) a bemen® szót.

Page 63: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.2. A nemdeterminisztikus véges automata 63

7.9. példa. Tekintsük a 〈{q0, q1}, {a, b}, δ, q0, {q1}〉 automatát, mely-nek állapotátmenet-függvénye a következ®:

δ(q0, a) = {q0} δ(q0, b) = {q0, q1}δ(q1, a) = {q0, q1} δ(q1, b) = ∅

• A aaa szót nem ismeri fel, mert az automata a szó beolvasásánakhatására a q0 állapotban marad.

• Az baba bemen® szót felismeri, mert az automata a {q0, q1} bels®állapotok valamelyikébe kerül.

7.10. definíció. LegyenA = 〈Q, V, δ, q0, Qv〉 egy nemdeterminisz-tikus véges automata. Az

LA = {v ∈ V ∗ | A felismerte v-t }

V feletti nyelvet az A automata által felismert nyelvnek nevez-zük.

Page 64: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

64 7. Reguláris nyelvek

7.11. tétel. A nemdeterminisztikus véges automatákkal felismer-het® nyelvek osztálya megegyezik a determinisztikus véges automa-tákkal felismerhet® nyelvek osztályával.

Bizonyítás vázlat. LegyenA = 〈Q, V, δ, q0, Qv〉 egy nemdeterminisz-tikus véges automata. Az A′ = 〈Q′, V, δ′, q′0, Q

′v〉 determinisztikus

véges automata, ahol

• Q′ = P(Q),• q′0 = {q0}• Q′v = {H ⊆ Q | H ∩Qv 6= ∅}• δ′ : Q′ × V → Q′ pedig tetsz®leges H ∈ Q′ és a ∈ V eseténδ′(H, a) =

⋃q∈H δ(q, a),

ugyanazt a nyelvet ismeri fel, amit A.

Page 65: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.2. A nemdeterminisztikus véges automata 65

7.12. példa. A 7.9. pédabeli nemdeterminisztikus véges automatá-hoz konstruáljuk meg a megfelel® determinisztikus véges automatát.Legyenek

• Q′ = {∅, {q0}, {q1}, {q0, q1}},• q′0 = {q0},• Q′v = {{q1}, {q0, q1}}• és

δ′(∅, a) = ∅ δ(∅, b) = ∅δ({q0}, a) = {q0} δ({q0}, b) = {q0, q1}δ({q1}, a) = {q0, q1} δ({q1}, b) = ∅δ({q0, q1}, a) = {q0, q1} δ({q0, q1}, b) = {q0, q1}

Page 66: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

66 7. Reguláris nyelvek

7.3. A 3 típusú nyelvek osztályának jellemzése

Ebben a részben megmutatjuk, hogy tetsz®leges V ábécé esetén a Vfeletti

• 3 típusú nyelvek osztálya,

• véges automatával felismerhet® nyelvek osztálya,

• reguláris nyelvek osztálya

egymással megegyeznek.

7.13. lemma. Egy átnevezéseket nem tartalmazó 3 típusú nyelv-tanhoz megadható vele ekvivalens olyan 3 típusú nyelvtan, melybenminden szabály A → aB vagy A → λ alakú, ahol A,B ∈ Vn ésa ∈ Vt.Bizonyítás vázlat. Legyen G = 〈Vn, Vt, S,H〉 egy átnevezése-ket nem tartalmazó 3 típusú nyelvtan. Konstruáljuk meg a G′ =

Page 67: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.3. A 3 típusú nyelvek osztályának jellemzése 67

〈V ′n, Vt, S,H ′〉 3 típusú nyelvtant a következ®képpen:

•Minden H-beli A → a1a2 . . . anB helyettesítési szabályt, aholn > 1, a1, a2, . . . , an ∈ Vt, cseréljünk ki az

A→ a1A1, A1→ a2A2, . . . , An−1→ anB

szabályokra, ahol A1, A2, . . . , An−1 új nemterminális szimbólu-mok.

•Minden H-beli A→ a1a2 . . . an helyettesítési szabályt, ahol n >1, a1, a2, . . . , an ∈ Vt, cseréljünk ki az

A→ a1A1, A1→ a2A2, . . . , An−1→ anAn, An→ λ

szabályokra, ahol A1, A2, . . . , An új nemterminális szimbólumok.

Legyen továbbá V ′n a Vn és az el®bbi konstrukció során keletkezettúj nemterminálisok halmazának egyesítése.

Page 68: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

68 7. Reguláris nyelvek

7.14. tétel. Tetsz®leges 3 típusú nyelv felismerhet® nemdetermi-nisztikus véges automatával.

Bizonyítás vázlat. Ha L 3 típusú nyelv, akkor tudunk konst-ruálni olyan nemdeterminisztikus véges automatát, amely felismeriaz L nyelvet. Legyen L a G = 〈Vn, Vt, S,H〉 3 típusú nyelvtannalgenerálható. A 7.13. lemma értelmében feltehet®, hogy G mindenszabálya A → aB vagy A → λ alakú. Az A = 〈Vn, Vt, δ, S,Qv〉nemdeterminisztikus véges automata, ahol

• Qv = {A ∈ Vn | A→ λ ∈ H},• δ(A, a) = {B ∈ Vn | A→ aB ∈ H}.felismeri az L nyelvet.

Page 69: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.3. A 3 típusú nyelvek osztályának jellemzése 69

Az általánosított véges automata gráfjának éleit reguláris kife-jezésekkel címkézzük meg. Egy ilyen gráfban minden út meghatározegy reguláris nyelvet reprezentáló reguláris kifejezést. Az általánosí-tott automata által felismert nyelv a kezd®állapotból induló, végál-lapotba vezet® utak által reprezentált nyelvek összege.Az általánosított automatákon ekvivalens átalakításokat hajha-

tunk végre, melyek csökkentik az élek számát, de nem módosítjáka felismert nyelvet. Elérhetjük, hogy a gráfnak egyetlen éle legyen,mely címkéje éppen az eredeti automata által felismert nyelvet rep-rezentáló reguláris kifejezés.

Page 70: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

70 7. Reguláris nyelvek

7.15. tétel. (Kleene tétele) Tetsz®leges determinisztikus vé-ges automatával felismerhet® nyelv reguláris.

Bizonyítás vázlat.Mivel a nyelv determinisztikus véges auto-matával felismerhet®, meg tudjuk adni ennek az automatának a gráf-ját.

• λ-átmenetek segítségével átalakítjuk az automatát úgy, hogy egyet-len, a kezd®állapottól különböz® végállapota legyen.

• Amíg a gráf több élt tartalmaz, ekvivalens átalakításokat hajtunkvégre.

A végül megkapott egyetlen él címkéje az eredeti automata által felis-mert nyelvet reprezentáló reguláris kifejezés. Tehát a nyelv reguláris.

Page 71: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.3. A 3 típusú nyelvek osztályának jellemzése 71

7.16. tétel. Tetsz®leges reguláris nyelv generálható 3 típusú nyelv-tannal.

Bizonyítás vázlat. Legyen a reguláris nyelvet reprezentáló re-guláris kifejezés R. Ha

• R = ∅, akkor LR = ∅ generálható G = 〈{S}, V, S, ∅〉-vel.• R = a, akkor LR = {a} generálható a G = 〈{S}, V, S, {S →a}〉 nyelvtannal.• R = (R1 + R2), akkor LR = LR1

+ LR2. Tegyük fel, hogy az

LR1és LR2

reguláris nyelvek generálhatóak 3 típusú nyelvtannal,legyenek ezek G1 = 〈V1, V, S1, H1〉, G2 = 〈V2, V, S2, H2〉, aholV1 ∩ V2 = ∅. Legyen

G = 〈V1 ∪ V2 ∪ {S}, V, S,H1 ∪H2 ∪ {S → S1, S → S2}〉.

Ekkor nyilvánvaló, hogy G is 3 típusú nyelvtan és LG = LR.

Page 72: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

72 7. Reguláris nyelvek

• R = (R1R2), akkor LR = LR1LR2

. Tegyük fel, hogy az LR1és LR2

reguláris nyelvek generálhatóak 3 típusú nyelvtannal, le-gyenek ezek G1 = 〈V1, V, S1, H1〉, G2 = 〈V2, V, S2, H2〉, aholV1 ∩ V2 = ∅. Legyen most

G = 〈V1 ∪ V2, V, S1, H〉,ahol H a legsz¶kebb olyan szabályhalmaz, melyre

� ha A→ xB ∈ H1, akkor A→ xB ∈ H ,

� ha A→ x ∈ H1, akkor A→ xS2 ∈ H ,

�H2 minden eleme H-nak is eleme.

Ekkor nyilvánvaló, hogy G is 3 típusú nyelvtan és LG = LR.

Page 73: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.3. A 3 típusú nyelvek osztályának jellemzése 73

• R = (R∗1), akkor LR = L∗R1. Tegyük fel, hogy az LR1

regu-láris nyelv generálható 3 típusú nyelvtannal, legyen ez G1 =〈V1, V, S1, H1〉. Legyen

G = 〈V1 ∪ {S}, V, S,H〉,ahol H a legsz¶kebb olyan szabályhalmaz, melyre

� S → S1, S → λ ∈ H ,

� ha A→ xB ∈ H1, akkor A→ xB ∈ H ,

� ha A→ x ∈ H1, akkor A→ xS ∈ H .

Ekkor nyilvánvaló, hogy G is 3 típusú nyelvtan és LG = LR.

Page 74: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

74 7. Reguláris nyelvek

7.17. tétel. (Pumpálási lemma) Legyen L reguláris nyelv. Ek-kor megadható olyan n ≥ 1 természetes szám, hogy minden olyanx ∈ L, amely `(x) ≥ n felírható x = uvw alakban,

1. `(uv) ≤ n,

2. `(v) ≥ 1,

3. minden i = 0, 1, 2, . . . természetes számra az uviw ∈ L.

A lemma szükséges feltételt ad meg arra, hogy egy nyelv regulárislegyen.

Page 75: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

7.3. A 3 típusú nyelvek osztályának jellemzése 75

7.18. következmény. Van olyan környezetfüggetlen nyelv, ame-lyik nem reguláris.

Bizonyítás vázlat. Tekintsük a

G = 〈{S}, {a, b}, S, {S → aSb, S → ab}〉környezetfüggetlen nyelvtant és az általa generált

LG = {ambm|m ≥ 1}nyelvet. Meg lehet mutatni, hogy a pumpálási lemmában megfo-galmazott szükséges feltételek nem teljesülnek LG-re, tehát a nyelvnem reguláris.Tegyük fel ugyanis, hogy teljesülnek ezek a feltételek, és n a megad-ható természetes szám. Legyen m = n. Ekkor `(anbn) = 2n ≥ n,így felírható uvw alakban, ahol `(uv) ≤ n, de `(v) ≥ 1. Ezértv = al alakú, ahol l ≥ 1. Tehát uviw 6∈ L, ha i 6= 1.

Page 76: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

76 7. Reguláris nyelvek

7.19. példa. Az {akba2k|k ≥ 0} nyelv nem reguláris.Tegyük fel ugyanis, hogy reguláris, ekkor a pumpálási lemmábanmegfogalmazott tulajdonságú a nyelv és legyen n a lemma szerintmegadható természetes szám. Legyen k = n. Ekkor `(anba2n) =3n+1 ≥ n, így felírható uvw alakban, ahol `(uv) ≤ n, de `(v) ≥ 1.Ezért v = al alakú, ahol l ≥ 1. Tehát uviw 6∈ L, ha i 6= 1, mert pl.a keletkez® szóban elöl n®tt az a-k száma, de hátul nem változott.

7.20. példa. Az {akblam|m > k + l} nyelv nem reguláris.Tegyük fel ugyanis, hogy reguláris, ekkor a pumpálási lemmábanmegfogalmazott tulajdonságú a nyelv és legyen n a lemma szerintmegadható természetes szám. Legyen k = l = n és m = 2n + 1.Ekkor `(anbna2n+1) = 4n+ 1 ≥ n, így felírható uvw alakban, ahol`(uv) ≤ n, de `(v) ≥ 1. Ezért v = al alakú, ahol l ≥ 1. Tehátuviw 6∈ L, ha i > 1, mert a keletkez® szóban hátul az a száma nemváltozik.

Page 77: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8. fejezet

Környezetfüggetlen nyelvek

8.1. Levezetési fák

8.1. definíció. LegyenG = 〈Vn, Vt, S,H〉 környezetfüggetlen nyelv-tan. G-beli levezetési fának nevezzük azokat a fagráfokat, melyek

• csúcsai Vn ∪ Vt ábácé bet¶i,

• gyökere az S kezd® szimbólum, és

• ha az A ∈ Vn csúcs gyermekei balról jobbra rendreX1, X2, . . . , Xk ∈ Vn ∪ Vt, akkor A→ X1X2 . . . Xk ∈ H .

A levezetési fa eredménye az a szó, amelyet úgy kapunk, hogy afa leveleit jelöl® bet¶ket balról jobbra haladva egymás mellé írjuk.

77

Page 78: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

78 8. Környezetfüggetlen nyelvek

8.2. példa. Vizsgáljuk a

G = 〈{S,A}, {a, b, c,+, ·, (, )}, S,{S → S + S, S → A · A,A→ (S + S), S → a|b|c, A→ a|b|c}〉

környezetfüggetlen nyelvtant. Határozzuk meg a c + (a + b) · b szóG-beli levezetési fáját.

8.3. tétel. Legyen G = 〈Vn, Vt, S,H〉 környezetfüggetlen nyelv-tan. Tetsz®leges v ∈ Vt szóra S ⇒∗ v pontosan akkor, ha van olyanG-beli levezetési fa, melynek eredménye v.

Page 79: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.1. Levezetési fák 79

8.4. tétel. (Bar-Hillel-lemma) Legyen L környezetfüggetlennyelv. Ekkor megadható olyan n ≥ 1 természetes szám, hogy min-den v ∈ L esetén, ha `(v) > n, akkor vannak olyan u, x, w, y, z ∈ Lszavak, melyekre az alábbi feltételek teljesülnek:

1. v = uxwyz,

2. `(xwy) ≤ n, `(w) ≥ 1, `(xy) ≥ 1, és

3. minden i = 0, 1, 2, . . . természetes számra az uxiwyiz ∈ L.

8.5. következmény. Van olyan környezetfügg® nyelv, amely nemkörnyezetfüggetlen.

Bizonyítás vázlat. Az L = {anbncn | n ≥ 1} nyelvet generáljaa 6.9. példában említett környezetfügg® nyelvtan. Be lehet látni a8.4. tétel alapján, hogy környezetfüggetlen nyelvtannal nem generál-ható.

Page 80: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

80 8. Környezetfüggetlen nyelvek

8.2. Chomsky-féle normál alak

8.6. definíció. Egy környezetfüggetlen nyelvtan Chomsky-féle nor-mál alakú, ha minden szabálya

vagy A→ a, vagy A→ BC

alakú, ahol A,B,C ∈ Vn és a ∈ Vt.

8.7. tétel.Minden olyan környezetfüggetlen nyelvtanhoz, mely-ben a szabályok jobb oldalán nem fordul el® az üres szó, van veleekvivalens Chomsky-féle normál alakú nyelvtan.

Bizonyítás vázlat. Legyen 〈Vn, Vt, S,H〉 környezetfüggetlen nyelv-tan. Ekvivalens átalakításokkal eljutunk egy 〈V ′′n , Vt, S,H ′′′〉 Chomsky-féle normál alakú nyelvtan

• Küszöböjük ki az átnevezéseket (H ′).

Page 81: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.2. Chomsky-féle normál alak 81

•Minden egyes ai ∈ Vt terminális szimbólumhoz, mely valamelyhelyettesítési szabály jobb oldalán nem egyedül szerepel, vezes-sünk be új Ai 6∈ Vn nemterminális szimbólumot, és legyen

V ′n = Vn ∪ {A1, . . . , Ak}.A H ′′-beli szabályokat úgy kapjuk a H ′-beliekb®l, hogy mindenH ′-beli szabályban ai helyére Ai-t írunk és felvesszük az Ai→ aiúj szabályokat minden 1 ≤ i ≤ k-ra.

• Az A→ B1B2 . . . Bm (m > 2) alakú szabályokat helyettesítsük

A → B1C1

C1 → B2C2...

Cm−2 → Bm−1Bm

szabályokkal H ′′′-ben, ahol V ′′n = V ′n ∪ {C1, . . . , Cm−2}.

Page 82: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

82 8. Környezetfüggetlen nyelvek

8.8. példa. Adjuk meg az

〈{S,D} , {a, b, c} , S, {S → aSc|D,D → bD|b}〉nyelvtannal ekvivalens Chomsky-normálalakú nyelvtant:

• a három terminális miatt három új nemterminálist vezetünk be:

〈{S,A,B,C,D} , {a, b, c} , S,{S → ASC|D,D → BD|b, A→ a,B → b, C → c}〉

• a jobb oldalukon kett®nél több nemterminálist tartalmazó szabályok kiküszö-

bölése:

〈{S,A,B,C,D,E} , {a, b, c} , S,{S → AE|D,E → SC,D → BD|b, A→ a,B → b, C → c}〉

• az átnevezések kiküszöbölése:

U(D) = {S} nemterminálisok azon halmaza, melyekb®l levezethet® D

〈{S,A,B,C,D,E} , {a, b, c} , S,{S → AE|BD|b, E → SC,D → BD|b, A→ a,B → b, C → c}〉

Page 83: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.2. Chomsky-féle normál alak 83

8.9. példa. Adjuk meg az

〈{S,A} , {a, b} , S, {S → A,A→ AbA|a〉

nyelvtannal ekvivalens Chomsky-normálalakú nyelvtant:

• terminálisok helyett nemterminálisok:

〈{S,A,B} , {a, b} , S, {S → A,A→ ABA|a,B → b〉

• a jobb oldalukon kett®nél több nemterminálist tartalmazó szabályok kiküszö-

bölése:

〈{S,A,B,C} , {a, b} , S, {S → A,A→ AC|a, C → BA,B → b〉

• az átnevezések kiküszöbölése:

U(A) = {S} nemterminálisok azon halmaza, melyekb®l levezethet® A

〈{S,A,B,C} , {a, b} , S, {S → AC|a,A→ AC|a, C → BA,B → b〉

Page 84: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

84 8. Környezetfüggetlen nyelvek

8.10. példa. Alakítsuk Chomsky-normálformára a helyettesítési szabályok alábbi

halmazát:

{S → AaA|CA|BaB,A→ aaBa|CDA|aa|DC,B → bB|bAB|bb|aS,C → Ca|bC|D,D → bD|λ}

• az üres szót tartamazó szabályok kiküszöbölése:

{A→ CA|C,C → λ,D → b} ⇒ {S → A,A→ DA|D|λ,C → a|b} ⇒{S → aA|Aa|a|C|λ,A→ CD} ⇒ {B → a}{S → AaA|CA|BaB|A|aA|Aa|a|C,A→ aaBa|CDA|aa|DC|CA|C|DA|D|CD,B → bB|bAB|bb|aS|a,C → Ca|bC|D|a|b,D → bD|b}• az átnevezések megszüntetése

{S → AaA|CA|BaB|aaBa|CDA|aa|DC|Ca|bC|bD|a|b|DA|CD|aA|Aa,A→ aaBa|CDA|aa|DC|CA|Ca|bC|bD|a|b|DA|CD,B → bB|bAB|bb|aS|a,C → Ca|bC|bD|a|b,D → bD|b}

Page 85: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.2. Chomsky-féle normál alak 85

• terminálisok helyett nemterminálisok:

{S → AXA|CA|BXB|XXBX|CDA|XX|DC|CX|Y C|Y D|a|b|DA|CD|XA|AX,A→ XXBX|CDA|XX|DC|CA|CX|Y C|Y D|a|b|DA|CD,B → Y B|Y AB|Y Y |XS|a,C → CX|Y C|Y D|a|b,D → Y D|b,X → a, Y → b}• csak két nemterminális a jobboldalon:

{S → AZ|CA|BU |VW |CP |XX|DC|CX|Y C|Y D|a|b|DA|CD|XA|AX,A→ VW |CP |XX|DC|CA|CX|Y C|Y D|a|b|DA|CD,B → Y B|Y AB|Y Y |XS|a,C → CX|Y C|Y D|a|b,D → Y D|b,X → a, Y → b, Z → XA,U →XB, V → XX,W → BX,P → DA}

Page 86: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

86 8. Környezetfüggetlen nyelvek

8.3. A Cocke-Younger-Kasami algoritmus

Legyen a környezetfüggetlen nyelvtanunk Chomsky-féle normál alakú.Keressük egy adott bemen® szóhoz a levezetési fáját. Egy n hosszú-ságú bemen® szó esetén a levezetési fa lehetséges csúcsait tartalmazócellák olyan háromszög alakú alakzatba rendezhet®k,

• melynek alsó sora n cellát, és minden további sora eggyel kevesebbcellát tartamaz, mint az alatta lev®,

• az alsó sorában a cellák � a bemen® szó bet¶sorrendjében � azonnemterminális szimbólumokat tartalmazzák, melyek a bemen® szóegyes bet¶ivel a helyettesítési szabályok szerint helyettesíthet®k.

• minden további cellába azon helyettesítési szabályok bal oldalaikerülnek, melyek jobb oldalán álló két nemterminális szimbóluma cella alatti háromszög alakzat két különböz® szárán lev® �meg-felel®� két cellában rendre megtalálhatók.

Page 87: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.3. A Cocke-Younger-Kasami algoritmus 87

Ha a legfels® sorban szerepl® egyetlen cellába bekerül az S kez-d®szimbólum, akkor a bemen® szó a nyelvtan által genereált nyelvszava, és az alakzatból leolvasható a szó minden levezetési fája.

Page 88: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

88 8. Környezetfüggetlen nyelvek

8.4. Nemdeterminisztikus veremautomaták

8.11. definíció. Az A = 〈Q, V,W, δ, q0, z0, Qv〉 rendezett hetestnemdeterminisztikus veremautomatának nevezzük, ahol

• Q 6= ∅ véges halmaz, elemei állapotok,

• V a bemen® ábécé,

•W a veremábécé,

• δ : Q × (V ∪ {λ}) × W → P(Q × W ∗) az állapotátmenet-függvény,

• q0 ∈ Q a kezd®állapot,

• z0 ∈ W a kezd®jel a veremmemóriában,

• Qv ⊆ Q a végállapotok halmaza.

Page 89: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.4. Nemdeterminisztikus veremautomaták 89

8.12. definíció. Az A veremautomata pillanatnyi kon�guráció-ján értünk egy (q, x1x2 . . . xn, y1y2 . . . ym) hármast, ahol

• q ∈ Q a veremautomata pillanatnyi bels® állapota,

• x1x2 . . . xn ∈ V ∗ a bemen® szó még be nem olvasott része,

• y1y2 . . . ym ∈ W ∗ a veremmemória pillanatnyi tartalma.

8.13. definíció. AzA veremautomata (q, x1x2 . . . xn, y1y2 . . . ym)kon�gurációja átvihet®

• a (q′, x2 . . . xn, y1y2 . . . ym−1w) kon�gurációba, ha (q′, w) ∈ δ(q, x1, ym),• a (q′, x1x2 . . . xn, y1y2 . . . ym−1w) kon�gurációba, ha (q′, w) ∈δ(q, λ, ym).

Page 90: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

90 8. Környezetfüggetlen nyelvek

8.14. definíció. Azt mondjuk, hogy az A veremautomata végál-lapottal felismer egy v ∈ V ∗ bemen® szót, ha van A-beli kon�gu-rációknak egy olyan véges sorozata, melynek

• els® eleme (q0, v, z0),

• utolsó eleme (q, λ, w), ahol q ∈ Qv, w ∈ W ∗, és• a sorozatban az utolsót kivéve minden kon�guráció átvihet® az ®tkövet®be.

8.15. definíció. Azt mondjuk, hogy az A veremautomata üresveremmel felismer egy v ∈ V ∗ bemen® szót, ha van A-beli kon�-gurációknak egy olyan véges sorozata, melynek

• els® eleme (q0, v, z0),

• utolsó eleme (q, λ, λ), ahol q tetsz®leges állapot, és

• a sorozatban az utolsót kivéve minden kon�guráció átvihet® az ®tkövet®be.

Page 91: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.4. Nemdeterminisztikus veremautomaták 91

8.16. példa. Tekintsük a 〈{q0, q1, q2}, {a, b}, {0, 1}, δ, q0, 0, {q0}〉veremautomatát, melynek állapotátmenet-függvénye a következ®:

δ(q0, λ, 0) = {(q0, λ)} δ(q1, a, 1) = {(q1, 11)} δ(q2, b, 1) = {(q2, λ)}δ(q0, a, 0) = {(q1, 01)} δ(q1, b, 1) = {(q2, λ)} δ(q2, λ, 0) = {(q0, λ)}• Az aabb szóra a veremautomata kon�gurációinak a

(q0, aabb, 0), (q1, abb, 01), (q1, bb, 011), (q2, b, 01), (q2, λ, 0), (q0, λ, λ)

sorozatát kapjuk. A veremautomata ezt a szót végállapottal is,üres veremmel is felismerte.

• Az abaab bemen® szóra a veremautomata kon�gurációinak a

(q0, abaab, 0), (q1, baab, 01), (q2, aab, 0)

sorozatát kapjuk, így a veremautomata ezt a szót nem ismertefel.

Page 92: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

92 8. Környezetfüggetlen nyelvek

8.17. definíció. AzA veremautomata által végállapottal felismertszavak halmazát az A által végállapotokkal felismert nyelvnek,az üres veremmel felismert szavak halmazát az A által üres verem-mel felismert nyelvnek nevezzük.

8.18. tétel. Egy nyelv pontosan akkor ismerhet® fel valamely A1nemdeterminisztikus veremautomatával üres veremmel, ha felismer-het® valamely A2 nemdeterminisztikus veremautomatával végálla-potokkal.

Page 93: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.4. Nemdeterminisztikus veremautomaták 93

8.19. példa. Tekintsük a 〈{q0, q1, q2}, {a, b}, {z0, a, b}, δ, q0, z0, {q2}〉veremautomatát, melynek állapotátmenet-függvénye a következ®:

δ(q0, a, z0) = {(q1, z0a)} δ(q1, a, a) = {(q1, a), (q2, a)}δ(q0, b, z0) = {(q1, z0b)} δ(q1, b, a) = {(q1, a)}

δ(q1, a, b) = {(q1, b)}δ(q1, b, b) = {(q1, b), (q2, b)}

Ez a veremautomata az {ava, bvb | v ∈ {a, b}∗} nyelvet ismeri felvégállapottal.

Page 94: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

94 8. Környezetfüggetlen nyelvek

8.20. példa. Tekintsük a 〈{q0, q1, q2}, {a, b, c}, {Z0, X}, δ, q0, Z0, {q2}〉veremautomatát, melynek állapotátmenet-függvénye a következ®:

δ(q0, a, Z0) = {(q0, Z0X)}δ(q0, b, Z0) = {(q0, Z0X)}δ(q0, c, Z0) = {(q1, Z0)}δ(q0, a,X) = {(q0, XX)} δ(q1, a,X) = {(q1, λ)}δ(q0, b,X) = {(q0, XX)} δ(q1, b,X) = {(q1, λ)}δ(q0, c,X) = {(q1, X)}

δ(q1, λ, Z0) = {(q2, Z0)}Ez a veremautomata az {v1cv2 | l(v1) = l(v2), v1, v2 ∈ {a, b}∗} nyel-vet ismeri fel végállapottal.

Page 95: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.4. Nemdeterminisztikus veremautomaták 95

8.21. példa. Adjunk meg az{anb2n | n ≥ 0

}nyelvet végállapottal

elfogadó veremautomatát!

〈{q0, q1, q2, q3}, {a, b}, {Z0, X}, δ, q0, Z0, {q3}〉,ahol az állapotátmenet-függvény a következ®:

δ(q0, a, Z0) = {(q1, Z0XX)} δ(q1, a,X) = {(q1, XXX)}δ(q1, b,X) = {(q2, λ)} δ(q2, b,X) = {(q2, λ)}

δ(q0, λ, Z0) = {(q3, Z0)} δ(q2, λ, Z0) = {(q3, Z0)}

Page 96: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

96 8. Környezetfüggetlen nyelvek

8.22. példa. Adjunk meg az {anv | n ≥ 0, v ∈ {a, b}∗, l(v) ≤ n}nyelvet végállapottal elfogadó veremautomatát!

〈{q0, q1, q2, q3}, {a, b}, {Z0, X}, δ, q0, Z0, {q2}〉,ahol az állapotátmenet-függvény a következ®:

δ(q0, a, Z0) = {(q1, Z0X)} δ(q1, a,X) = {(q1, XX), (q2, λ)} δ(q2, a,X) = {(q2, λ)}δ(q1, b,X) = {(q2, λ)} δ(q2, b,X) = {(q2, λ)}

δ(q0, λ, Z0) = {(q2, Z0)} δ(q2, a, Z0) = {(q3, Z0)}δ(q2, b, Z0) = {(q3, Z0)}

Page 97: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.4. Nemdeterminisztikus veremautomaták 97

8.23. tétel. Tetsz®leges környezetfüggetlen L nyelvhez van olyanA nemdeterminisztikus veremautomata, amely végállapottal felis-meri az L nyelvet.

Bizonyítás vázlat. Legyen L a G = 〈Vn, Vt, S,H〉 környezet-független nyelvtannal generálható. Az A = 〈{q0, q1, q2}, Vt, Vt ∪Vn∪{Z0}, δ, q0, Z0, {q2}〉 nemdeterminisztikus véges automata, aholδ értelmezése

• δ(q0, λ, Z0) = {(q1, Z0S)},• δ(q1, λ, A) = {(q1, α−1)|A→ α ∈ H minden A ∈ Vn,• δ(q1, a, a) = {(q1, λ)} minden a ∈ Vt-re, és• δ(q1, λ, Z0) = {(q2, Z0)},végállapottal felismeri az L nyelvet.

8.24. tétel. Tetsz®leges nemdeterminisztikus veremautomata ál-tal felismert nyelv környezetfüggetlen.

Page 98: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

98 8. Környezetfüggetlen nyelvek

8.25. példa. Az 〈{S,A,B} , {0, 1}, S,H〉 egy környezetfüggetlennyelvtan, ahol a helyettesítési szabályok:{S → SA|AB|1, A→ BS|1, B → SA|0}.Konstruáljunk olyan veremautomatát, amelyik felismeri a nyelvtanáltal generált nyelvet:〈{q0, q1, q2}, {0, 1} ∪ {S,A,B} ∪ {Z0}, δ, q0, Z0, {q2}〉, ahol

δ(q0, λ, Z0) = {(q1, Z0S)} δ(q1, λ, S) = {(q1, AS), (q1, BA), (q1, 1)}δ(q1, λ, A) = {(q1, SB), (q1, 1)}δ(q1, λ, B) = {(q1, AS), (q1, 0)}δ(q1, 0, 0) = {(q1, λ)}δ(q1, 1, 1) = {(q1, λ)}δ(q1, λ, Z0) = {(q2, Z0)}

(q0, 101, Z0)→ (q1, 101, Z0S)→ (q1, 101, Z0AS)→ (q1, 101, Z0A1)→(q1, 01, Z0A)→ (q1, 01, Z0SB)→ (q1, 01, Z0S0)→ (q1, 1, Z0S)→(q1, 1, Z01)→ (q1, λ, Z0)→ (q2, λ, Z0)

Page 99: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.5. LL(k) elemzés 99

8.5. LL(k) elemzés

Az LL(k) elemzés során a levezetés a kezd®szimbólumból indul. Baloldali levezetést használunk (jelölése ⇒l), azaz minden egyes lépés-nél kicseréljük a legbaloldalibb nemterminálist (legyen most ez A)valamelyik szabály alapján. Ha egyetlen A → β alakú szabályunkvan, akkor ez a csere egyértelm¶. Ha több ilyen van, akkor pe-dig az elemzend® szóban lév® következ® k darab szimbólum alapjándöntünk, hogy melyik szabályt alkalmazzuk. Az LL(k) nyelvtanokolyan nyelvtanok, amelyeknél ez az információ bármelyik elemezend®szó esetén elegend® az egyértelm¶ döntéshez.Elnevezés:

• Left to right, using a Leftmost derivation

• döntés k terminális szimbólum el®reolvasásával

Page 100: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

100 8. Környezetfüggetlen nyelvek

Formálisan megfogalmazva: legyen k ≥ 1 egész szám,α ⇒∗l β jelentse azt, hogy α-ból β bal oldali levezetéssel (mindigcsak a bal oldali nemterminális kicserélésével) levezethet®,els®k(α) az α-ból levezethet® szavak k hosszúságú terminális kezd®-szeleteinek halmaza:

els®k(α) = {x|α⇒∗l xβ, l(x) = k} ∪ {x|α⇒∗l x, l(x) < k}8.26. definíció. Egy nyelvtan akkor LL(k) nyelvtan, ha valahány-szor teljesülnek a

S ⇒∗l wAβ ⇒ wα1β ⇒∗l wx,S ⇒∗l wAβ ⇒ wα2β ⇒∗l wy,

els®k(x) = els®k(y)feltételek, akkor

α1 = α2is teljesül.

Page 101: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.5. LL(k) elemzés 101

8.27. példa. Az 〈{S,A} , {a, b} , S, {S → AS|λ,A→ aA|b〉 nyelv-tan LL(1) nyelvtan, ugyanis ha a legbaloldalibb nemterminális

• S, az S → AS szabályt kell alkalmazni, akár a, akár b az elem-zend® szó következ® bet¶je, és az S → λ szabályt, ha nincs márkövetkez® bet¶ az elemzett szóban,

• A, az A → aA szabályt alkalmazzuk, ha a a következ® bet¶, ésaz A→ b szabályt, ha b a következ® bet¶.

a b λ

S S → AS S → AS S → λA A→ aA A→ b

Az aabab szó elemzése:S ⇒ AS ⇒ aAS ⇒ aaAS ⇒ aabS ⇒ aabAS ⇒ aabaAS ⇒aababS ⇒ aabab

Page 102: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

102 8. Környezetfüggetlen nyelvek

8.28. példa. Az

〈{S,A} , {a, b, c} , S, {S → aAab|bAbb, A→ c|λ〉nyelvtan LL(1) nyelvtan, ugyanis ha a legbaloldalibb nemterminális

• S, az S → aAab szabályt kell alkalmazni, ha a, az S → bAbbszabályt kell alkalmazni, ha b az elemzend® szó következ® bet¶je,

• A, az A→ c szabályt alkalmazzuk, ha c a következ® bet¶, és azA→ λ szabályt, ha a vagy b a következ® bet¶.

A nyelvtantanhoz tartozó LL(1) elemz® táblázat:

a b c

S S → aAab S → bAbbA A→ λ A→ λ A→ c

Az acab szó elemzése: S ⇒ aAab⇒ acabAz bbb szó elemzése: S ⇒ bAbb⇒ bbb

Page 103: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.5. LL(k) elemzés 103

8.29. példa. Készítsük el az

〈{S,A,B,C} , {a, b, c, d, e, f} , S,{S → aA|bBc,A→ Bd|Cc,B → e|λ,C → f |λ}〉

nyelvtantanhoz tartozó LL(1) elemz® táblázatot:

a b c d e f

S S → aA S → bBcA A→ Cc A→ Bd A→ Bd A→ CcB B → λ B → λ B → eC C → λ C → f

Page 104: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

104 8. Környezetfüggetlen nyelvek

8.30. példa. Készítsük el az

〈{S,A} , {a, b, c, d} , S, {S → aS|A,A→ bAc|d}〉nyelvtantanhoz tartozó LL(1) elemz® táblázatot:

a b c d

S S → aS S → A S → AA A→ bAc A→ d

Page 105: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

8.5. LL(k) elemzés 105

Az〈{S,A} , {a, b} , S, {S → abA|λ,A→ Saa|b〉

nyelvtan LL(2) nyelvtan. Látható ugyanis, hogy például az

S ⇒l abA⇒l abSaa⇒l ababAaa

és azS ⇒l abA⇒l abSaa⇒l abaa

levezetések utolsó lépésében egy bet¶ el®reolvasásával mindkét eset-ben az a-t kapjuk, és az S-re alkalmazott szabály csak két szimbólum(az ab és az aa) el®reolvasásával határozható meg.

Page 106: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

9. fejezet

Környezetfügg® nyelvek

9.1. Turing-gépek

9.1. definíció. Az T = 〈Q, V,W, δ, q0〉 rendezett ötöst Turing-gépnek nevezzük, ahol

• Q 6= ∅ véges halmaz, elemei állapotok,

• V a bemen® ábécé és V ⊆ W a szalagábécé,

• δ : Q × (W ∪ {t}) → (Q ∪ {qacc}) × (W ∪ {t}) × {L,R} azállapotátmenet-függvény,

• q0 ∈ Q a kezd®állapot.

106

Page 107: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

9.1. Turing-gépek 107

9.2. definíció. A T Turing-gép pillanatnyi kon�gurációján ér-tünk egy (ua, q, bv) hármast, ahol

• q ∈ Q a Turing-gép pillanatnyi bels® állapota,

• ua ∈ V ∗ a szalagon található szó olvasófejt®l balra lev® része,

• bv ∈ W ∗, az olvasófej b-t olvassa a szalagon.

9.3. definíció. A T Turing-gép (ua, q, bv) kon�gurációja átvi-het®

• a (u, q′, acv) kon�gurációba, ha δ(q, b) = (q′, c, L),

• a (uac, q′, v) kon�gurációba, ha δ(q, b) = (q′, c, R).

Page 108: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

108 9. Környezetfügg® nyelvek

9.4. definíció. Azt mondjuk, hogy a T Turing-gép elfogadja egyw ∈ V ∗ bemen® szót, ha van T-beli kon�gurációknak egy olyanvéges sorozata, melynek

• els® eleme (t, q0, w),• utolsó eleme (u, qacc, v), ahol u, v ∈ W ∗, és• a sorozatban az utolsót kivéve minden kon�guráció átvihet® az ®tkövet®be.

Page 109: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

9.1. Turing-gépek 109

9.5. példa. Kövessük a T = 〈{q0, q1}, {a, b}, {a, b}, δ, q0〉δ(q0, a) = (q1, a, R) δ(q1, a) = (q1, a, R)δ(q0, b) = (q0, b, R) δ(q1, b) = (q1, b, R)

δ(q1,t) = (qacc,t, R)Turing-gép m¶ködését a bbaab szóra.(t, q0, bbaab) → (b, q0, baab) → (bb, q0, aab) → (bba, q1, ab) →

(bbaa, q1, b)→ (bbaab, q1,t)→ (bbaab, qacc,t)

Page 110: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

110 9. Környezetfügg® nyelvek

9.6. példa. Kövessük a

T = 〈{q0, q1, q2, q3, q4, q5, q6}, {0, 1}, {0, 1, X}, δ, q0〉

δ(q0, 0) = (q1, X,R) δ(q0, 1) = (q2, X,R) δ(q0,t) = (qacc,t, R)δ(q1, 0) = (q1, 0, R) δ(q1, 1) = (q1, 1, R) δ(q1,t) = (q3,t, L)δ(q2, 0) = (q2, 0, R) δ(q2, 1) = (q2, 1, R) δ(q2,t) = (q4,t, L)δ(q3, 0) = (q5,t, L)

δ(q4, 1) = (q6,t, L)δ(q5, 0) = (q5, 0, L) δ(q5, 1) = (q5, 1, L) δ(q5, X) = (q0, X,R)δ(q6, 0) = (q6, 0, L) δ(q6, 1) = (q6, 1, L) δ(q6, X) = (q0, X,R)

Turing-gép m¶ködését a 001, az 1001 és a λ bemen® szavakkal.

Page 111: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

Irodalomjegyzék

[1] Bach Iván: Formális nyelvek, Typotex, 2001.

[2] Demetrovics János, J. Denev, R. Pavlov: A számítástudománymatematikai alapjai, Tankönyvkiadó, Budapest, 1989.

[3] Fazekas Attila, Dömösi Pál: Formális nyelvek és automaták,jegyzet, mobiDiák Könyvtár, 2004.

[4] Fülöp Zoltán: Formális nyelvek és szintaktikus elemzésük, Poly-gon, Szeged, 1999.

[5] Horváth Géza, Mecsei Zoltán, Nagy Benedek: Gyakorlati össze-foglaló, feladatgy¶jtemény, mobiDiák Könyvtár, 2004.

111

Page 112: Automaták és formális nyelvek el®adások · VÁRTERÉSZ MAGDA Automaták és formális nyelvek el®adások 2017/18-as tanév 1. félév

112 Irodalomjegyzék

[6] Kása Zoltán: Automaták és formális nyelvek, (Informatikai al-goritmusok II. c. könyv 19. fejezete; Iványi Antal szerk.) EötvösKiadó, Budapest, 2005.

[7] Papp Zoltán: Automaták és formális nyelvek, el®adás fóliák,http://www.inf.unideb.hu/� pappzol