9
23. Formális nyelvek. (Formális nyelvtanok és a Chomsky-féle nyelvosztályok. A reguláris nyelvek alapvető tulajdonságai és alkalmazásai. Környezetfüggetlen nyelvek és elemzésük. Matematikai gépek véges automata és veremautomata.) (Formális nyelvtanok és a Chomsky-féle nyelvosztályok. Bevezető (Fogalmak): Ezen feltételeket figyelembe véve definiálhatjuk a formális nyelvtant

23. Formális nyelvek. (Formális nyelvtanok és a …20-%20...23. Formális nyelvek. (Formális nyelvtanok és a Chomsky-féle nyelvosztályok. A reguláris nyelvek alapvető tulajdonságai

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

23. Formális nyelvek. (Formális nyelvtanok és a Chomsky-féle nyelvosztályok. A reguláris nyelvek

alapvető tulajdonságai és alkalmazásai. Környezetfüggetlen nyelvek és elemzésük. Matematikai gépek

– véges automata és veremautomata.)

(Formális nyelvtanok és a Chomsky-féle nyelvosztályok.

Bevezető (Fogalmak):

Ezen feltételeket figyelembe véve definiálhatjuk a formális nyelvtant

(Emlékeztető)

A generatív nyelvtanok osztályozását a szabályok alakja alapján tehetjük meg. Egy megkötést már

ismerünk: a szabályok bal oldalán mindenképpen szerepelnie kell nyelvtani jelnek. A szabályok alakja

szerint a következő osztályozás lehetséges:

(Emlékeztető)

UNIO:

KONKATENÁCIÓ:

(L3 néhány zártsági tulajdonsága)

Alkalmazások:

- reguláris nyelvek: Assembly, Regexp.

- környezettfüggõ nyelvek: Ada, Fortran.

- attribútum nyelvek: C#, C, C++, Java.

(Emlékeztető)

Elemzés:

(Emlékeztető)

Véges automaták:

Véges állapotú automata (finite state automata – FSA):

Olyan gépek, amelyeket véges számú állapot és az azokat összekapcsoló véges számú

állapotátmenet (tranzició)jellemez. Ismeretes az állapotok közt egy kezdőállapot, mely az automata

első, kiinduló állapotát jelzi, és ismeretesegy elfogadó állapot is, mely az automata utolsó,

végállapotát jelzi. Ha az automata működése befejeztéig végesszámú állapoton haladt át, azt mondjuk,

az automata elfogadta a bemenetet.

Tranziciós (mozgási) fa:

Az automaták működését, a fej mozgását szemléltetjük egy irányított gráffal. Az állapotátmeneteket

jelképező gráfélek a forrásállapottól kapott bemeneti szimbólumok hatására a célállapotból valamilyen

kimeneti választ váltanak ki.

Véges Nemdeterminisztikus állapotú Automata:

Egy NDVA a következő 5-össel írható le: (S, Σ, T, s0, A), ahol

(S) az állapotok véges halmaza

(Σ) az ábécé-nek nevezett véges halmaz

(T : S × (Σ \{ε}) → P(S)) az átmeneti függvény. Ez lehet olyan reláció is, ami nem függvény.

s0 a kitüntetett kezdeti (vagy indító) állapotok halmaza (s0 ⊆ S)

(A ⊆ S) az elfogadó állapotok halmaza

ahol P(S) S hatványhalmaza, ε az üres string, és Σ a bemenő jelek ábécéje.

Legyen M egy NDVA úgy, hogy M = (S, Σ, T, s0, A), és X az Σ ábécéből alkotott string. M elfogadja

az X stringet, ha létezik X-nek egy x1x2 … xn formájú megvalósítása, xi ∈ (Σ \{ε}), és létezik az

állopotoknak az r0,r1, …, rn, ri ∈ S sorrendje, valamint teljesülnek a következő feltételek:

1. r0 ∈ s0

2. ri ∈ T(ri-1, xi ), minden i = 1, …, n

3. rn ∈ A.

Az automata a kezdő állapotból indulva olvassa a bejövő string szimbólumait, amelyek az adott

ábécéhez kell, hogy tartozzanak. Az automata állapotát a T átmeneti szabályai határozzák meg, attól

függően, hogy szimbólumot, vagy üres stringet olvasott be. Amikor az automata beolvasta az utolsó

szimbólumot, és elfogadó állapotban van, akkor mondhatjuk, hogy az NDVA elfogadta a stringet,

ellenkező esetben pedig visszautasította.

Az automata által elfogadott stringek halmaza egy nyelvi forma, az a nyelv, amelyet az NDVA

felismer. Ez a nyelv egy szabályos nyelv.

Minden NDVA-hoz található egy determinisztikus véges állapotú gép (DFA), amely ugyanazt a

nyelvet fogadja el. Ebből következik, hogy lehetséges egy létező NDVA-ra olyan átalakítás, amelynek

az eredménye egy DFA lesz, így megvalósítható egy (talán) egyszerűbb gépként. Az átalakítás

általában a hatványhalmaz megkonstruálásával történik, ami oda vezet, hogy exponenciálisan megnő a

belső állapotok száma.

Veremautomaták

Az ilyen gépek hasonlóak a determinisztikus automatákhoz, rendelkeznek viszont memóriával is

verem (vermek) formájában. A δ állapotátmeneti függvény a verem tetején lévő szimbólumtól is

függeni fog, és azt is meg fogja mondani, hogyan változzon a verem az átmenetkor. Ezek az

automaták környezetfüggetlen nyelvek elfogadására képesek.