Formális nyelvek és automaták



Hasonló dokumentumok
Házi feladatok megoldása. Harmadik típusú nyelvek és véges automaták. Házi feladatok megoldása. VDA-hoz 3NF nyelvtan készítése

Házi feladatok megoldása. Automaták analízise, szintézise és minimalizálása. Házi feladatok megoldása. Házi feladatok megoldása

Formális nyelvek. Aszalós László, Mihálydeák Tamás. Számítógéptudományi Tanszék. December 6, 2017

Nyelvek és Automaták

Házi feladatok megoldása. Veremautomaták. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 12. gyakorlat

4. Legyen Σ = {0, 1}. Adjon meg egy determinisztikus véges automatát, amely azokat a szavakat fogadja el,

Automaták és formális nyelvek

Az LR elemző felépítése. Léptetés. Redukálás. Kiegészített grammatika. Mit kell redukálni? Kiegészített grammatika. elemző. elemző.

5. Logaritmus. I. Nulladik ZH-ban láttuk: 125 -öt kapjunk. A 3 5 -nek a 3. hatványa 5, log. x Mennyi a log kifejezés értéke?

Környezetfüggetlen nyelvek

Környezetfüggetlen nyelvek

Irodalom. Formális nyelvek I. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

Juhász István Orosz Gyula Paróczay József Szászné Dr. Simon Judit MATEMATIKA 10. Az érthetõ matematika tankönyv feladatainak megoldásai

Chomsky-féle hierarchia

Formális nyelvek I/2.

A torokgerendás fedélszerkezet erőjátékáról 1. rész

Fonya ZH recap szabivános typo lehet, bocs

Középiskolás leszek! matematika. 13. feladatsor

Gyakorló feladatsor 9. osztály

Minta feladatsor I. rész

A Riemann-integrál intervallumon I.

4. előadás Determinisztikus véges automaták

GAZDASÁGI MATEMATIKA I.

ZH feladatok megoldásai

A 2013/2014. tanévi Országos Középiskolai Tanulmányi Verseny első forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató

M. 2. Döntsük el, hogy a következő két szám közül melyik a nagyobb:

Sűrűségmérés. 1. Szilárd test sűrűségének mérése

Exponenciális és logaritmikus egyenletek, egyenletrendszerek, egyenlôtlenségek

Lineáris programozás

Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.

(11,05 Miskolczi Ferenc megérkezett, a létszám: 21 fő)

FELVÉTELI VIZSGA, július 15.

Országos Középiskolai Tanulmányi Verseny 2010/2011 Matematika I. kategória (SZAKKÖZÉPISKOLA) Az 1. forduló feladatainak megoldása

4. Hatványozás, gyökvonás

"ALAPÍTÓ OKIRAT... A továbbiakban változatlanul a 13. ponttal bezárólag. Határidő: határozat megküldésére: október 30.

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete

Irodalom. Formális nyelvek I/1. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

1. feladat Oldja meg a valós számok halmazán a következő egyenletet: 3. x log3 2

Megint a szíjhajtásról

Algebrai struktúrák, mátrixok

finanszírozza más városnak, tehát ezt máshonnan finanszírozni nem lehet.

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELZÁRKÓZTATÓ TANFOLYAM

A vasbeton vázszerkezet, mint a villámvédelmi rendszer része

PÉLDA: Négyezer-hatszázöt Jel Szám

Tartalom I. 1. Kohászat. 2. Egyedi Protanium acél. 3. Első osztályú korrózióvédelem. 4. Örökös garancia

MAGICAR 441 E TÍPUSÚ AUTÓRIASZTÓ-RENDSZER

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Exponenciális és Logaritmusos feladatok

A Gauss elimináció M [ ]...

A digitális számítás elmélete

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

9. Exponenciális és logaritmusos egyenletek, egyenlőtlenségek

PÉLDA: Négyezer-hatszázöt Jel Szám

Chomsky-féle hierarchia

II. A számtani és mértani közép közötti összefüggés

Véges automaták, reguláris nyelvek

1. Végezd el a kijelölt mûveleteket a betûk helyére írt számokkal! Húzd alá azokat a mûveleteket,

2010/2011 es tanév II. féléves tematika

2014/2015-ös tanév II. féléves tematika

Gyökvonás. Hatvány, gyök, logaritmus áttekintés

Vektortér fogalma vektortér lineáris tér x, y x, y x, y, z x, y x + y) y; 7.)

Szerelői referencia útmutató

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

Heves Megyei Középiskolák Palotás József és Kertész Andor Matematikai Emlékversenye évfolyam (a feladatok megoldása)

7. tétel: Elsı- és másodfokú egyenletek és egyenletrendszerek megoldási módszerei

Lineáris egyenletrendszerek

Gyakorló feladatsor 11. osztály

f (ξ i ) (x i x i 1 )

2000. évi XXV. törvény a kémiai biztonságról1

Vektorok. Vektoron irányított szakaszt értünk.

PÉLDA: Négyezer-hatszázöt Jel Szám

E5CN Alkalmazási segédlet

TENGELY szilárdsági ellenőrzése

Automaták mint elfogadók (akceptorok)

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

PÉLDA: Négyezer-hatszázöt Jel Szám

l.ch TÖBBVÁLTOZÓS FÜGGVÉNYEK HATÁRÉRTÉKE ÉS DIFFERENCIÁLHATÓSÁGA

IX. A TRIGONOMETRIA ALKALMAZÁSA A GEOMETRIÁBAN

Néhány szó a mátrixokról

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Határozzuk meg, hogy a következő függvényeknek van-e és hol zérushelye, továbbá helyi szélsőértéke és abszolút szélsőértéke (

Logika és számításelmélet. 10. előadás

Matematika A1a - Analízis elméleti kérdései

Házi feladatok megoldása. Nyelvek felismerése. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 5. gyakorlat

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Ellenállás mérés hídmódszerrel

VB-EC2012 program rövid szakmai ismertetése

Ptolemaios-tétele, Casey-tétel, feladatok

6. előadás A reguláris nyelvek jellemzése 2.

Z600 Series Color Jetprinter

Kovács Judit ELEKTRO TEC HNIKA-ELEKTRONIKA 137

VI. Deriválható függvények tulajdonságai

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

6. Tárkezelés. Operációs rendszerek. Bevezetés A program címeinek kötése. A címleképzés. A címek kötésének lehetőségei

II. EGYENLETEK ÉS EGYENLŐTLENSÉGEK

Végeredmények, emelt szintû feladatok részletes megoldása

Gazdasági matematika 1. tantárgyi kalauz

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Formális nyelvek és automaták

Átírás:

Formális nyelvek és utomták Horváth Árpád 2015. április 21. Nézzük először vázltosn félév fontosbb foglmit! Nyelvek, nyelvtnok és utomták kpcsolt áltlábn (formális) nyelv szvk hlmz Például C, Jv nyelvek, URL-ek nyelve generálj felismeri nyelvtn levezetési szbályok (bsztrkt) utomt állpotgráf Ezeket nyelveket mjd osztályokb fogjuk sorolni. Például környezetfüggetlen nyelvekhez trtoznk progrmozási nyelvek. Környezetfüggetlen nyelvek, környezetfüggetlen nyelvtnok ill. veremutomták kpcsolt környezetfüggetlen nyelv szvk hlmz környezetfüggetlen nyelvtn levezetési szbályok veremutomt állpotgráf A környezetfüggetlen nyelvekhez hsonló digrm rjzolhtó fel környezetérzékeny és z áltlános nyelvtnok esetén is, csk z utomt típus lesz más és más. Sőt reguláris nyelvtnok esetén is, de ott nyelvnek még egy hsznos megdási módot fogunk tnulni: z úgynevezett reguláris kifejezésre illeszkedő szvk is reguláris nyelvet lkotnk. Reguláris nyelvek, kifejezések és nyelvtnok ill. véges utomták kpcsolt reguláris kifejezés tömör leírás illeszkedik reguláris nyelv szvk hlmz generálj felismeri reguláris nyelvtn levezetési szbályok véges utomt állpotgráf 1

1. Formális nyelvek Ebben segédletben néh hsználom szó kifejezést, mely Bch-könyvben mondtként* szerepel. Pár zonos értelemben hsznált kifejezés szkirodlomból: ábécé = lfbet* (veremábécé = verem lfbetáj*) nyelvtn*=grmmtik* de nyelvtn nyelv! DFA = FDA = determinisztikus véges utomt* reguláris kifejezés = reguláris hlmz* végállpot = elfogdó állpot* A *-gl jelölteket hsználj könyv. De kezdjük z elején. Formális nyelvek lpfoglmi és jelölései 1.1. definíció. A formális nyelvek lpvető definíciói. Ábécé: szimbólumok véges hlmz (Σ) Ezek egyesítése, különbsége hlmzokéhoz hsonlón definiált. Ábécé betűi: szimbólumok (, b, c k ) Σ Szó: szimbólumok véges sorozt (A szvkt később gykrn z ábécé végéről vett jelekkel fogjuk jelölni (v, w, x, y, z), ebben z esetben zt fogj jelenteni, hogy csk terminális szimbólumok vnnk benne; hsonló ngybetűkkel (V, W, X, Y, Z) pedig olynokt, melyben csk nemterminálisok; görög betűkkel (α, β, ω) pedig olynokt, melyikben bármelyik.) Szó hossz: sorozt hossz (len(α)) (Az ngol length=hossz szóból.) Üres szó (ε): melyre len(ε) = 0 (H szvkr úgy gondolunk, mint progrmozási nyelvek sztringjeire, kkor ε z üres sztringnek, felel meg. Az ε tlán könnyebben megjegyezhető úgy, hogy z z ngol empty szó kezdőbetűjének görög megfelelője (kis epszilon).) Szvk konktenációj (összefűzése): yw = 1 2 3 n b 1 b 2 b m, hol y = 1 2 3 n, w = b 1 b 2 b m (Asszocitív, kommuttív, egységelemes-e? len(yw) =?) Tükörkép: y 1 = n 2 1 fenti ipszilonnl, zz betűit fordított sorrendben írom le. Htvány: y 0 = ε, y 1 = y, y n = y n 1 y. (Pl. (b) 3 = bbb) Σ Σ ábécéből lkotott összes szó, beleértve z üres szót is. Például {,b} = {ε,,b,,b,b,bb,,...bbb,...} Σ ábécéből lkotott formális nyelv (L(Σ) vgy L): bármely L(Σ) Σ 1.1. péld. Példák nyelvekre. Σ = {0,1}, L 0 (Σ) =, L e (Σ) = {ε}, L 1 (Σ) = {01,0,ε}, L 2 (Σ) = {y0y 1 y {0;1} }, Σ = {i f ;then;;b;c} L 1 (Σ ) = {c; if then b; if then if b then c} 01 01010 L 1 (Σ)L 2 (Σ) z csk htárt jelöli Nyelvtnok megdásához 4 dolgot kell megdni: G(Σ;N;S;P) Σ: terminális szimbólumok, N: nemterminális szimbólumok, S: kezdőszimbólum, P: helyettesítési szbályok. Áltlábn jelölésrendszer egyértelműsége mitt P helyettesítési szbályok megdás elegendő. Áltlábn ugynis nemterminálisokt ngybetűvel jelöljük, ezek közül kezdőszimbólumot S-el, többi szimbólum terminális szimbólum. A progrmozási nyelvek környezetfüggetlen nyelvtnánk leírásábn áltlábn nyíl helyett ::= jelölést hsználjuk, és gykrn terminálisokt idézőjelbe rkják. Erről z úgynevezett Bckus Nur jelölésről segédletben később esik szó. 1.2. péld. Htározzunk meg z lábbi helyettesítési szbályok esetén mik lesznek nem terminális és terminális szimbólumok! Vezessünk le z értékdó_kifejezés szimbólumból egy szót! 1. értékdó_kifejezés ::= változó értékdó_operátor értékdó_kifejezés 2. értékdó_kifejezés ::= változó 3. értékdó_operátor ::= "=" 4. értékdó_operátor ::= "*=" 5. értékdó_operátor ::= "/=" 6. értékdó_operátor ::= "+=" 2

7. értékdó_operátor ::= "-=" 8. változó ::= "" 9. változó ::= "b" (A Kernighn Ritchie: A C progrmozási nyelv (1996) című könyv 258. oldlán tlálhtó A C nyelv szintktikájánk összefogllás. Egy részének jelentősen egyszerűsített változt szerepel itt.) A helyettesítési szbályok első soránk jobboldlán három tg szerepel, mindhárom nemterminális, második sor jobb oldlán egy nemterminális, következő sorok jobb oldlán terminális szimbólumok szerepelnek. A nemterminális szimbólumok: N = {értékdó_kifejezés, változó, értékdó_operátor} A terminális szimbólumok: Σ = {, b, =, *=, /=, +=, -=} Kiindulv z értékdó_kifejezés nemterminális szimbólumból, z lábbi lépésekben megkphtunk egy csupán terminális szimbólumból álló kifejezést: értékdó_kifejezés (1) változó értékdó_operátor értékdó_kifejezés (3) változó = értékdó_kifejezés (8) = értékdó_kifejezés (1) = változó értékdó_operátor értékdó_kifejezés (4) = változó *= értékdó_kifejezés (9) = b *= értékdó_kifejezés (8) = b *= (Ez kifejezés múgy C-ben érvényes kifejezés, először *= kifejezés hjtódik végre, megszorozv b értékét -vl, ez kerül először b-be, mjd ez z eredmény kerül -b is.) A terminális és nemterminális szimbólumok (pl. változó) egy ábécét lkotnk korábbi elnevezéseink szerint, kpott kifejezés pedig egy terminális szimbólumokból álló szó. Az P-ben tlálhtó helyettesítési szbályok segítségével z S kezdőszimbólumból kiindulv egy vgy több lépésben levezethetünk bizonyos szvkt, melyek csk nemterminális szimbólumokból állnk. Az így levezethető szvkt nevezzük G nyelvtn áltl generált nyelvnek. Jele: L(G). A továbbikbn zt vizsgáljuk, hogy milyen lehetőségeink vnnk nnk ellenőrzésére, hogy egy szó benne vn-e nyelvtn áltl generált nyelvben. A feldtmegoldás során problémát z áltlános megoldás felől közelítjük meg helyett, hogy elköteleznénk mgunkt techniki részletek mellett, hogy például feldtot hrdveresen vgy szoftverrel oldjuk-e meg. A nyelv szvit felismerő elméleti konstrukciókt utomtáknk fogjuk nevezni. Ezeknek több típus vn, és hogy melyik z legegyszerűbb típus, mit lklmzni tudunk, nyelv típusától függ. Vizsgáljuk meg tehát, milyen típusok vnnk. Az 1.2. példábn láttunk egy példát egy C-szerű nyelv egy részletének leírásából. Ott nemterminális szimbólumok esetén olyn leírásokt tlálhtunk, mint változó, értékdó_kifejezés, vgy értékdó_operátor. A továbbikbn mi áltlábn ezeknél rövidebb jelölésmódot fogunk lklmzni. Ltin ngybetűkkel (S, A, B) fogjuk jelölni nemterminális szimbólumokt, és kisbetűvel (, b, c) terminális szimbólumokt. Nyelvtnok és nyelvek típusi (Chomsky-hierrchi) A nyelvek típusit nyelvtnok típusiból fogjuk szármzttni. Először tehát ezt vizsgáljuk meg. Először egy tábláztbn összefogllom nyelvtnok típusit, mjd részletesebben kifejtem. Legyen α,β,ω (Σ N) A,B N Σ szbályok típus nyelvtn típus utomt αaβ ω 0-típusú, áltlános Turing-gép αaβ αωβ 1-típusú, környezetérzékeny A ω 2-típusú, környezetfüggetlen (CF) PDA A B vgy A 3-típusú, reguláris DFA A környezetfüggetlen nyelvnél nem szoktuk megengedni, hogy jobboldlt üres szó szerepeljen. Így környzetfüggetlen nyelv nemnövelő lesz, mi zt jelenti, hogy levezetés egyik lépésében sem csökken szimbólumok szám. Megengedjük viszont z S ε szbályt környzetfüggetlen nyelv és reguláris nyelvek esetén, h sehol sem szerepel jobboldlán S. H ezt hozzávesszük, kkor egy nyelv típus nem fog függeni ttól, h z üres szót ε hozzádjuk, vgy elvesszük belőle. (A Python progrmozási nyelvben például egy 0 bájtos fájl érvényes progrm, csk nem csinál semmit.) Az áltlános nyelvtn tényleg legáltlánosbb. A szbályoktól csk zt követeljük meg, hogy bloldlán legyen nem terminális szimbólum, és egy ilyen részt bármilyen szóvá átlkíthtunk. A környezetérzékeny (Context Sensitive, CS) nyelvtnnál már megköveteljük, hogy h szbály bl oldlán h nemterminális szimbólum mellett nnk jobb és bloldlán vlmilyen szó áll, kkor z változtlnul mrdjon meg z átlkított szó elején. A környezetfüggetlen (Context Free, CF) nyelvtnnál már csk egy nemterminális szimbólumot lkíthtunk át tetszőleges szóvá. A környezetfüggetlen tényleg részhlmz z előzőnek. A környezetérzékenyből csk zokt speciális átlkítási szbályokt engedjük itt meg, hol α = β = ε, zz mindkettő üres szó. 3

1.2. definíció. A nyelvet n-típusúnk nevezünk, h vn olyn n-típusú nyelvtn, mely nyelvet generálj. (Pl: környezetfüggő nyelvet generál környezetfüggő nyelvtn.) Eszerint például környezetfüggetlen, nyelvtnok áltl generált nyelveket környezetfüggetlen nyelveknek nevezzük. Ezekhez nyelvekhez trtozik sok progrmozási nyelv. A reguláris nyelvtnok csk egész speciális formájú átlkításokt engednek meg, hogy tábláztbn látjuk, egy nemterminális szimbólumot lkíthtunk egy terminálissá vgy egy terminális utáni nemterminálissá. A környezetfüggetlen nyelv szoros kpcsoltbn vn progrmozási nyelvek ngy részében lpból vgy függvénykönyvtárk segítségével elérhető reguláris kifejezésekkel. 2. Véges utomták, mint nyelvek felismerői A véges utomták, z lábbi ábrán láthtó módon, egy szlgból, és egy véges vezérlőműből áll. A szlgon tlálhtó egy szó, mely egy dott ábécé szimbólumiból áll. A véges vezérlőmű minden lépésben beolvs egy szimbólumot, és mozgási szbályok figyelembevételével új állpotb kerülhet. Előfordulht, hogy z dott állpot esetén dott szlgábécébeli szimbólum esetén nincs szbály rr, milyen állpotb kerüljön. Ilyenkor felismerés elkd. A szó felismerésére először zt z egyszerűbb változtot vizsgáljuk meg, mikor minden állpotbn minden szlgábécébeli szimbólum esetén egyetlen mozgási szbály vn. Ilyenkor zt mondjuk, hogy véges utomt determinisztikus. Determinisztikus véges utomt (DFA) esetén kkor mondjuk, hogy egy szlgon szereplő szót felismert, h szót végig tudt olvsni, és végigolvsás végén végállpotb került. Elvileg megállpíthtó zoknk szvknk (véges vgy végtelen) hlmz, melyet z utomt felismer. Az ilyen szvk hlmz nyelvet lkot. Ezt nyelvet nevezzük z utomt áltl felismert nyelvnek. A véges utomták esetén be fogjuk látni, hogy véges utomták áltl felismert nyelv csk reguláris nyelv lehet, és bármely reguláris nyelv esetén vn olyn véges utomt, mely z dott nyelvet ismeri fel. A véges utomt szlgábécéje lesz felismert nyelv ábécéje, ezért jelöljük Σ-vl mindkettőt. Beolvsás irány s 0 s 1 s 2 s 3 s 4 s 5 Bemenő szlg Σ szlgábécé Véges állpotú vezérlőmű Q = {q 0,q 1,...,q n 1 } állpothlmz, q 0 Q kezdőállpot, δ mozgási szbályok, F Q végállpotok hlmz. Soron következő jel beolvsás Egy véges utomt vezérlőművét legszemléletesebben állpotgráffl dhtjuk meg, mi egy irányított gráf: nyíl mutt kezdeti (áltlábn q 0 -ll vgy S-el jelölt) állpotr. A nyilkon szereplő szimbólumok ( Σ szlgábécéből) jelzik, hogy egy dott állpotból zt olvsván szlgról hov jut tovább. A kettős körök jelzik végállpotokt. A véges utomtákt mi állpotgráffl fogjuk ábrázolni áltlábn. Tudni kell zonbn, hogy minden állpotgráfhoz 5 dolgot kell tudni, miknek jelei (Q,Σ,δ,q 0,F). Q z utomt állpotink hlmz, Σ felismerendő nyelv ábécéje, δ függvény mozgási szbályokt trtlmzz, egy-egy q i állpotr és ábécébeli szór δ(q i, j ) visszdj, hogy milyen következő állpotb kerül z utomt. Tudnunk kell, hogy melyik állpot kezdőállpot, de ez jelöléséből (q 0 vgy S) is nyilvánvló szokott lenni (Állpotgráfon egy rövid nyilcsk z állpothoz). És végül tudnunk kell, melyek végállpotok (F: végállpotok hlmz; állpotgráfon dupl krik jelöli). Gykrn z egész utomtánk nevet is szoktunk dni (pl. M,M 1,M 2,M ), ilyenkor z lábbi jelölést hsználjuk M(Q,Σ,δ,q 0,F): Nemdeterminisztikus véges utomt (NFA), h vn olyn állpot, melyből egy terminális szimbólum htásár leglább kétfelé mehetünk tovább. NFA esetén kkor mondjuk, hogy egy szót z utomt felismer, h (z áltlábn több lehetséges útvonl közül) vn olyn állpotsorozt, melynek során végig tudjuk olvsni szót, és végállpotb jutunk. Tudni kell: megállpítni, hogy egy szót felismer-e egy DFA, NFA, egy mozgássoroztot konfigurációsorozttl leírni, egyszerűbb utomtákból megállpítni, milyen nyelvet ismer fel, és zt hlmzjelölésekkel felírni, megállpítni, hogy egy véges utomt DFA vgy NFA-e, hogyn lkíthtjuk át nemdeterminisztikus utomtákt determinisztikussá. Bch 2.2. szksz, Determinisztikus és nemdeterminisztikus véges utomták. A 37. oldlon vn egy NFA DFA átlkítás, én ennél egyszerűbbeket kérdezek, de zt érdemes végigolvsni és megérteni. 4

3. Reguláris nyelvek és véges utomták Az utomták és nyelvek között tábláztbn láthtó kpcsolt vn. Bármely véges utomt áltl felismert összes szóból lkothtunk egy nyelvet, és ez mindig reguláris nyelv lesz. Fordítv: minden reguláris nyelvhez hozhtunk létre olyn véges utomtát, mely zt nyelvet ismeri fel. Hsonló kpcsolt többi, tábláztbn feltüntetett utomt és nyelvcslád között. A véges utomt helyett zért írtunk DFA-t, mert beláthtó, hogy minden véges utomt átlkíthtó determinisztikus véges utomtává, úgy, hogy ugynzokt szvkt ismerje fel illetve utsíts el mint z eredeti. Tehát determinisztikus véges utomták mindrr képesek, minth még hozzájuk vennénk nem determinisztikuskt (NFA-kt) is. Az lábbikbn megdjuk, hogyn lehet átlkítni egy reguláris nyelvtnt véges utomtává úgy, hogy véges utomt ugynzt nyelvet ismerje fel, minth mit reguláris nyelvtn generál. Mivel ez z átlkítás mindig lehetséges, ebből következik, hogy reguláris nyelvekhez mindig trtozik zt felismerő véges utomt. Reguláris nyelvtn véges utomt átlkítási szbályok Kell kezdetben egy kezdőállpot és egy végállpot V S, hová A lkú szbályokt vezetjük. A további szbályok: A A B A A B V S S ε Az átlkítás során minden nyelvtnbeli nemterminálishoz létrehozunk egy állpotot, és szbályok szerint megrjzoljuk nyilkt. H vn S ε szbály, kkor kezdőállpotot egyben végállpottá tesszük, zz duplán krikázzuk. (Lehet-e vjon fenti átlkításokkl szbálytln epszilon szbályt létrehozni? Bizony lehet, h kezdő állpotból, mely végállpot is, önmgáb nyíl mutt, kkor jobboldlon is elő fog fordulni z S kezdőszimbólum. Akit érdekel végiggondolhtj, hogyn lehetne átlkítni hibás nyelvtnt, hogy ez ne forduljon elő, de ugynzt nyelvet ismerje fel. Megnyugttásul közlöm, hogy ez megtehető reguláris nyelveket mgábn foglló környezetfüggetlen nyelvek körében is, és ezt Bch-könyv ott tárgylj.) Az lábbi szbályok megmuttják, hogyn lkíthtunk át egy véges utomtát reguláris nyelvtnná olyn módon, hogy reguláris nyelvtn ugynzt nyelvet generálj, mint mit véges utomt felismer. Ez z átlkítás minden esetben lehetséges, minek z következménye, hogy minden véges utomt reguláris nyelvet ismer fel. Véges utomt reguláris nyelvtn átlkítási szbályok A B A B A B A B, A A B A S S ε Azz h tetszőleges állpotból nem végállpotb megyünk, vgy végállpotból nem vezet ki nyíl, kkor egyetlen szbállyl helyettesíthetjük nyilt, h végállpotból tovább vezet nyíl (kár önmgáb is) kkor viszont két szbállyl helyettesíthetem csk. H z S kezdőállpot végállpot is, kkor kell egy epszilon-szbály. H egyszer od-vissz lkítunk, kkor nem feltétlenül ugynzt véges utomtát kpjuk, de vele egyenértékűt. Az utomtává lkításkor csk V lesz végállpot, és esetleg z S, míg kezdetben kár kettőnél több végállpot is lehet. A környezetfüggetlen nyelvek felismeréséhez már nem elegendő z DFA. Ahhoz már z DFA-t ki kell egészíteni egy veremmel, egy olyn tárrl, minek minden lépés során tetejére rkht egy elemet, vgy levehet onnn egyet, és z állpotváltozási során figyelembe veszi verem felső elemét is, ez veremutomt (Push Down Automton, PDA), miről környezetfüggetlen nyelvek esetén lesz szó, mivel veremutomták környezetfüggetlen nyelvekkel vn olyn kpcsoltbn, mint véges utomták reguláris nyelvekkel. 3.1. péld. Htározzuk meg, hogy z lábbi DFA felismeri-e következő szvkt: ε, 010, 0101, (10) 5? Vezesse le 010 szót konfigurációsorozttl! Írjuk le szvkkl és hlmzjelölésekkel, hogy milyen szvkt ismer fel! Mi A és B állpotok jelentése? Milyen típusú nyelv felismert nyelv? Honnn tudom, hogy determinisztikus ez véges utomt? 0 1 0 1 S A 1 B M 0 Az üres szónál S-ben mrd, mi nem végállpot: z üres szót nem ismeri fel. A 010 esetén következő állpotokon megy végig SSAB. Mivel B végállpot, ezért szót felismerte. A 0101 szó esetén ugynzokon z állpotokon megy keresztül, csk még visszlép 5

A-b, mi nem végállpot, tehát szót nem ismeri fel. (10) 5 = 1010101010 esetén z első 1-esnél átjut A-b mjd A és B között lépked od-vissz. Végül B-be jut, tehát felismeri z utomt. A véges utomtáknál további lépések megállpításához elég pillntnyi állpot és bemenő szó mrdék része, tehát egy konfiguráció zt trtlmzz. A 010 levelezése konfigurációsorozttl: A 0101 levelezése konfigurációsorozttl: (S,010) (S,10) (A,0) (B,ε) (S,0101) (S,101) (A,01) (B,1) (A,ε) H levezetés végén elfogy szó, és elfogdó állpotb kerülök, kkor szót felismerte DFA, z utomt áltl elfogdott nyelvhez trtozik, h nincs ilyen levezetés, kkor nem. H fenti utomtát M-el jelöljük, kkor hlmzjelölésekkel: 010 L(M), 0101 L(M), {010,(10) 5,1110} L(M). A A állpotb kerül z utomt bárhonnn, h 1-est olvs. Tehát A jelentése z, hogy utoljár 1-es volt szóbn. A B-be csk A-ból jutht z utomt, h 0-át olvs. Tehát B jelentése, hogy szóbn utoljár 10 volt. Az utomt tehát zokt szvkt ismeri fel, melynek végén 10 vn, zz hlmzjelöléssel: L(G) = {y10 y {0,1} }. Az DFA-k pontosn reguláris nyelveket ismerik fel, tehát L(M) reguláris nyelv. A determinisztikusság igzolásához ellenőrizni kell minden egyes állpotnál, hogy egyféle szimbólum htásár csk egyfelé tudok-e továbbmenni. Jelen esetben nincs egyetlen olyn állpot sem, melyből két 1-es cimkéjű, vgy két 0-ás cimkéjű nyíl vezetne ki, tehát tényleg DFA. 3.1. Műveletek nyelvekkel Ismerni kell Bch-könyv 2.5. fejezetében szereplő műveleteket: komplemens, unió, metszet, konktenált, htvány, trnzitív lezárt. Nyelvek konktenációj: L 1 L 2 = {xy x L 1, y L 2 } Nyelvek htvány: L 0 = {ε}, L 1 = L, L 2 = LL, L n = L n 1 L Nyelvek trnzitív lezártj: L = L 0 L 1 L 2 L 3... Milyen nyelvek kpunk, h ezekben műveletekben reguláris nyelvek kiinduló nyelvek? Hogyn igzoljuk ezt komplemensképzésre? Példák. Legyen L 1 = {01,0,101,ε}, L 2 = {y0y 1 y {0;1} } ekkor: L 1 L 2 = {101} 01 01010 L 1 L 2 z csk htárt jelöli 01 0 01 01 0 L 5 1 01 101 01 0 L 1 3.2. Reguláris kifejezések A reguláris kifejezéseket és reguláris hlmzokt rokon értelmű szóként hsználjuk. A Bch-könyv 2.6. fejezete z utóbbit, mi z előbbit hsználjuk és kitérünk gykorlti hsználtukr is. Az elméleti és gykorlti jelölés némileg eltér egymástól, és z utóbbi jelentősen bővebb. A legfontosbb eltérés jelölésben, hogy z elméletben (pl. könyvben) + jelet hsználnk hol gykorltbn függőleges vonlt ( ). Gykorlti lklmzást npplisokkl lborbn nézzük (linux/vim/regexp_vim.txt) ebből levelezős, távos hllgtóknk csk * és () vlmint krkterek levédése (\) kell. A gykorlti lklmzásbn is kétféle formátum vn reguláris kifejezéseknek, például Jv Scriptben, Pythonbn csoportosítás zárójelét, z 1 vgy több ismétlődést jelentő +-ot és z dott számú előfordulást jelentő {3} zárójeleket nem kell levédeni \-sel (bckslsh-sel). Ott viszont z nehezebb h kerek vgy kpcsos zárójelre kell illeszteni. Olynkor kell levédeni. 6

4. Feldtok nyelvcsládokhoz és reguláris nyelvekhez, véges utomtákhoz A távos, levelezős Számítástudomány tárgyhoz ezek bedndó feldtok voltk. Újbbn teszt vn, melyhez felkészüléskor érdemes ezeket átnézni. A tesztnél lehet, hogy ppíron végig kell ilyen feldtokt vezetni, hogy válszolni tudjunk tesztkérdésekre. 4.1. feldt. Htározzuk meg, hogy z L(G) nyelvben benne vn-e: ε, bb, bb? Írjuk le szvkkl és hlmzjelölésekkel, milyen szvkt trtlmz! Soroljuk be Chomsky-féle hierrchiáb nyelvtnt! Σ = {,b}, N = {S} P = {S b;s Sb} 4.2. feldt. Htározzuk meg, hogy z L(G) nyelvben benne vn-e: 01, 111, 1111? Írjuk le szvkkl milyen szvkt trtlmz! Soroljuk be Chomsky-féle hierrchiáb nyelvtnt! Σ = {0,1}, N = {S,A} P = {S 1;S 1A;S 0S;A 1S;A 0A} 4.3. feldt. Legyen dott z lábbi nyelv: G = (Σ = {0,1}, N = {S,A}, P = {S 1;S 1A;S 0S;A 1S;A 0A}) H lehetséges, hozzunk létre olyn M véges utomtát, melyre L(G) = L(M), zz nyelvtn áltl generált nyelv és z utomt áltl felismert nyelv megegyezik. 4.4. feldt. Adjunk meg olyn reguláris nyelvtnt, mely pontosn zokt z 0 és 1 szimbólumokból álló szvkt generálj: 1. melyek két 0-r kezdődnek; 2. melyekben pontosn egy 0 vn. 4.5. feldt. Felismeri-e z lábbi utomt csup egyesekből álló szvkt? Adjunk meg három olyn szót, mit z lábbi véges determinisztikus utomt felismer! Adjuk meg, milyen szvkt ismer fel (szóbn vgy hlmzjelöléssel)! S 1 1 0 0 A 4.6. feldt. Adjunk meg DFA-t, mely z lábbi nyelvet ismeri fel, illetve reguláris nyelvtnt, mely ezt generálj: L = {x01 x {0,1} } 4.7. feldt. (A második típusút nem csináltunk még, z nem lesz.) Döntsük el, hogy igzk-e z lábbi állítások. Válszunkt indokoljuk! (Nemleges válsz esetén áltlábn ellenpéldávl indokolhtunk.) 1. Egy környezetfüggetlen nyelvhez létezhet olyn áltlános nyelvtn, mely zt állítj elő. 2. A szvk konktenációj egységelemes félcsoport. 4.8. feldt. Adjuk meg hlmzleírássl vgy írjuk le szvkkl milyen nyelvet d meg z lábbi ábrán láthtó véges determinisztikus utomt. b b S A B b 4.9. feldt. Hozzunk létre (lehetőleg reguláris) nyelvtnt hhoz nyelvhez, melyet z lábbi véges determinisztikus utomt ismer fel. b b S A B b 7

4.10. feldt. (Nehezebb, ilyen nehéz nem lesz.) Adjuk meg hlmzleírássl vgy írjuk le szvkkl milyen nyelvet d meg z lábbi ábrán láthtó véges determinisztikus utomt. S b b A b B 4.11. feldt. Adjunk meg nyelvtnt, mely ezt generálj: L = {ww 1 w {0,1} } 4.12. feldt. Vjon vn-e olyn DFA, mely z előző feldtbn szereplő nyelvet ismeri fel? 5. Tudnivlók és kiegészítések környezetfüggetlen nyelvekhez A Bch-könyvben egy külön fejezet fogllkozik velük. Környezetfüggetlen nyelv. A Bckus Nur jelölés. A nyelvtn megdásánk ebben formájábn nyíl helyett ::= szimbólumot hsználjuk, terminális kifejezéseket idézőjelek htárolják nemterminális szimbólumok zok, melyeket nem idézőjelek htárolnk, és egybe írottk (z esetleges szóközt láhúzássl helyettesítik). Progrmozási nyelvek megdásánál ezt szokták hsználni. Kiegészítő nyg. Az lábbi túlmegy törzsnygon, és nem fogom kérdezni, de remélem zért lesz ki elolvss és hsznosnk tlálj. http://docs.python.org/librry/string.html#formtstrings Az itt tlálhtók szerint Pythonbn egy érték kiírási formáj következő lehet egy sztring objektum formt metódus esetén: formt_spec ::= [[fill]lign][sign][#][0][width][,][.precision][type] fill ::= < chrcter other thn } > lign ::= "<" ">" "=" "^" sign ::= "+" "-" " " width ::= integer precision ::= integer type ::= "b" "c" "d" "e" "E" "f" "F" "g" "G" "n" "o" "s" "x" "X" "%" Az első sorbn látjuk, hogy minden nemterminális (például sign, type) szögletes zárójelben ([]) tlálhtó, mi zt jelenti, hogy elhgyhtók. Ez jelölésmód nem csk nyelvek leírásábn szerepel, hnem Unix és Linux rendszerek esetén is így jelölik z elhgyhtó rgumentumokt kézikönyvek SYNOPSIS sorábn. Csk írjuk be mn ls prncsot. A mnból q-vl lehet kilépni. Ennek megfelel például "^ 8f" típusjelölés mely egy számot lebegőpontos (type="f") lkbn ír ki, középre rendezve (lign="^"), h nyolc krkter szélességű helyre (width="8") két tizedesjegy pontossággl (precision="2") úgy, hogy z előjelnek pozitív számoknál kihgy egy helyet (sign=" ", szóköz) és 8-s szélességből megmrdó helyet + krkterrel tölti ki (fill="+") A következő sorbn egy Python kifejezés és z értéke láthtó: "{0:+^ 8.2f}".formt(1.2) "+ 1.20++" A Bckus Nur jelölésnek ettől eltérő formái is léteznek. Elterjedt még, hogy nem terminális szimbólumokt teszik idézőjelbe, hnem nem terminális szimbólumokt teszik kcscsőrös zárójelek közé: <értékdó operátor>. Ilyen szerepel könyv 1.3 fejezetében (Miért grmmtik grmmtik Egy illusztrtív péld) 5.1. péld. Írjuk tömörebb formábn z lábbi Bckus Nur jelöléssel megdott nyelvtnt, mjd lkítsuk át z formális nyelvek elméletében hsznált tömörebb jelölésre. Az értékdó_kifejezés-t tekintsük kezdőszimbólumnk. értékdó_kifejezés ::= változó értékdó_operátor értékdó_kifejezés értékdó_kifejezés ::= változó változó ::= "" változó ::= "b" értékdó_operátor ::= "=" értékdó_operátor ::= "+=" 8

értékdó_operátor ::= "-=" értékdó_operátor ::= "*=" értékdó_operátor ::= "/=" Megoldás: A rövid form: értékdó_kifejezés ::= változó értékdó_operátor értékdó_kifejezés változó változó ::= "" "b" értékdó_operátor ::= "+=" "-=" "*=" "/=" Az értékdó_kifejezés-t jelöljük S-sel, többi nemterminálist z ABC első ngybetűivel, terminálisokt pedig z első kisbetűivel. eredeti új értékdó_kifejezés S változó A értékdó_operátor B "" "b" b "=" c "*=" d "/=" e "+=" f " =" g Így fenti szbályok következővé lkulnk: P = {S ABS, S A, A b, B c d e f g} Itt felhsználtuk, hogy z A és A b szbályt rövidíthetjük A b formábn. Az utoló szbálycsoport is 5 szbályt fogll mgábn. Az 1.2. példábn megnéztük, hogyn lehet levezetni belőle z lábbi C nyelvben érvényes értékdó kifejezést. = b *= 5.1. Levezetési f Bl- és jobboldli levezetés. Levezetési f. Szintktiki egység. Egyértelmű, többértelmű nyelvtn. Egyértelmű, többértelmű nyelv. Vn-e lgoritmus z eldöntésére? Nyelvtnok ekvivlenciáj. Vn-e lgoritmus két reguláris illetve két környezetfüggetlen nyelvtn ekvivlenciájánk megállpításár? H vn, hogyn lehet? Ne keverjük nyelvet és nyelvtnt! A Bch-könyv bizonyítj, hogy z első nyelvtn (miben E, T, F vn) egyértelmű, bizonyítás nem kell. Ezt nyelvtnt érdemes megjegyezni. A Bch-könyvben péld vn olyn nyelvre, mi nem egyértelmű, példát ismerni kell, és tudni milyen szvihoz nincs egyértelmű levezetés semelyik hozzá trtozó CF nyelvtnbn. Reguláris nyelv lehet-e többértelmű. Milyen lkú levezetési fáj? A könyvben szereplő nyelvtn levezetési szbályi: E E + T T, T T F F, F (E) (1) Itt kivételesen nem S-sel jelöltük kezdőszimbólumot, hnem z ngol kifejezése kezdőbetüjével, E-vel. Ezt nyelvtnt Bckus-Nur jelöléssel így írhtnánk. expression ::= expression "+" term expression ::= term term ::= term "*" fctor term ::= fctor fctor ::= "(" expression ")" fctor ::= "" Vgy tömörebben: 9

expression ::= expression "+" term term term ::= term "*" fctor fctor fctor ::= "(" expression ")" "" Ez egyes elemek jelentése mgyrul: expression=kifejezés, term=tg, fctor=szorzótényező. 5.1.1. A kifejezés nyelvének szűrése A nyelvtn következő levezetési szbályokt trtlmzz: E E + T T; T T F F; F (E) Az E (expression) kezdőszimbólum, és T (term) és F (fctor) is nemterminálisok, többi terminális. A nyelvtnt könnyen kiegészíthetnénk úgy, hogy kivonás és osztás műveletét is trtlmzz, de további vizsgáltink ez csk bonyolítná. Ebben nyelvben nincs felesleges szimbólum. Erről meggyőződhetünk, h kétféle szűrést elvégezzük. Kötelezően lulról kell kezdeni szűrést (bottom up), terminális szimbólumoktól: B 0 = {+,,(,),} B 1 = {+,,(,),,F} B 2 = {+,,(,),,F,T} B 3 = {+,,(,),,F,T,E} Mivel minden szimbólum szerepel hlmzbn, tehát minden nemterminálisból levezethető vlmilyen terminálisok sorozt. folytssuk felülről lefelé (top down) szűréssel. Itt kezdőszimbólumml kezdünk, mely jelen esetben z E. T 0 = {E} T 1 = {E,+,T} T 2 = {E,+,T,,F} T 3 = {E,+,T,,F,(,),} Ezzel megmutttuk, hogy minden szimbólum esetén vn olyn szó, mely levezethető kezdőszimbólumból, és z dott szimbólumot trtlmzz. 5.1.2. Reguláris nyelv levezetési fáj A reguláris nyelvekben kétféle szbály lehet, z utolsó lépést kivéve z A B lkút hsználjuk, ekkor mindig megmrd egy drb nemterminális, mely szó legvégén tlálhtó. A levezetés végén egy A lkú szbály hsználtávl tudjuk nemterminálist eltüntetni. Egy korábbi feldtbn szerepelt z lábbi levezetési szbályokkl megdott nyelvtn. (A ngybetűk nemterminálisok.) Ebben érvényes z lábbi levezetés. P = {S 1;S 1A;S 0S;A 1S;A 0A} S 1A 10A 101S 1011 A levezetés minden lépésében jobboldlon szereplő nemterminálist bontjuk tovább, levezetési f egy jobbr lefelé növő f lesz. S 1 A 0 A 1 1 Ebben nyelvtnbn minden egyes szó levezetése egyetlen sorrendben lehetséges, mi biztosítj zt, hogy egyetlen f trtozzon levezetéshez. Ez nyelvtn és így z áltl meghtározott nyelv is egyértelmű tehát. Áltlábn bizonyíthtó, hogy minden reguláris nyelvhez tlálhtó egyértelmű nyelvtn, zz reguláris nyelvek egyértelműek. 10

5.1.3. Eldöntő lgoritmusok 5.1. definíció. Két nyelvtnt ekvivlensnek nevezünk, h ugynzt nyelvet generálják. Vn-e olyn lgoritmus, mellyel eldönthető, 1. hogy két reguláris nyelvtn ekvivlens-e? Igen. Mindegyikhez elkészítem véges utomtát, h nem determinisztikus, kkor zzá lkítom, elkészítem minimálutomtát. H két nyelvtnból képzett minimálutomt megegyezik z állpotok jelölésétől eltekintve, kkor két nyelv zonos nyelvet generál. Az állpotok esetén lehetséges, hogy mit z egyik esetén q 1 -gyel jelöltünk, másik esetben q 2 -vel; ettől még két utomt lényegében megegyezik. 2. hogy két környezetfüggetlen nyelvtn ekvivlens-e? Nem. Nemcsk hogy eddig nem tudtunk létrehozni ilyet, de bizonyíthtó, hogy nem hozhtó létre ilyen lgoritmus. 3. hogy egy környezetfüggetlen nyelvtn egyértelmű-e? Nem. Itt is bizonyíthtó, hogy nem hozhtó létre olyn lgoritmus, mellyel ez eldönthető. 5.2. Környezetfüggetlen nyelvtnok átlkítás Mikor felesleges terminális ill. nemterminális szimbólum? Alulról felfelé és felülről lefelé átfésülés. Melyiknél milyen hlmzzl kezdünk? Lényeges-e sorrend? A Bch-könyv nyomttott (könyvként 2001-ben kidott) változtábn nyelvtni szbályok egyikét elírták, következő szbályokkl igz, hogy fordított sorrendű szűrés során C b szbály feleslegesen bent mrd, csk z jó, h először szűrök lulról ( terminálisoktól) és után felülről ( kezdőszimbólumtól): S, S B, B BC, C b Ki kell tudni szűrni felesleges szimbólumokt egy nyelvtnból. Rekurzív szimbólum. Álrekurzivitás, progrmozási péld. Mikor rekurzív egy nyelv? Hsznos-e vgy káros rekurzivitás? 5.2. definíció. Egy nyelvtnbn egy A nemterminálist rekurzívnk nevezünk, h belőle kiindulv levezethető olyn szó, melyben szintén szerepel A. A αaβ, α,β (Σ N) A fenti definicióbn (kissé logikátlnul) zt jelöli, hogy jobboldl egy vgy több lépésben levezethető bloldlból. Logikusbb lenne + jelölés. 5.2. péld. Adjunk példát egy progrmbeli álrekurziór és egy nyelvtnbelire. Megoldás: A Python nyelvben def függvénydefiniálás utsítás, zárójelezés helyett sorok behúzásávl tgolj kódot. Mi hib z lábbi rekurzív függvényben? def fctoril(n): return n*fctoril(n-1) A függvény nem tud befejeződni, mert mindig újból önmgát hívj meg. Kell tenni bele egérutt, mikor befejeződik, és nem újból önmgát hívj: def fctoril(n): if n == 0: return 1 return n*fctoril(n-1) Ekkor, leglábbis pozitív egészekre, helyesen működik. Az első változt álrekurzív, második vlódi rekurzív függvény. A fentihez hsonlón működik B bb szbály, h B-től sohsem tudok megszbdulni. Az lábbi esetben C-nél ott ez egérút, B-től viszont nem lehet megszbdulni. P = {S B, B bb, S C, C cc, C c} H hozzádnék egy B b szbályt, kkor igzi rekurzió lenne B bb és nem lenne benne felesleges szimbólum. Mikor nem küszöbölhető ki mindegyik ε-szbály? Milyen formábn engedjük meg z ε-szbályt olyn nyelv nyelvtnábn, mely üres szót (ε) trtlmz? Az ε-szbályok kiszűrési lgoritmus nem kell. 11

5.1. tétel. Egy nyelvtnbn minden ε-szbálytól megszbdulhtunk, h z áltl generált nyelvben nincsen benne z üres szó, zz kezdőszimbólum nem enyészhet el. Ellenkező esetben nyelvtnt átlkíthtjuk úgy, hogy egyetlen ε-szbályt trtlmzzon, z S ε szbályt, és z S kezdőszimbólum nem szerepel sehol sem levezetési szbályok jobboldlán. Kiküszöbölhetőek-e z egyszeres szbályok? Milyen esetben érdemes kiszűrni? A kiszűrés lgoritmus nem kell. Mit jelent jólfésült nyelvtn (proper grmmr)? Minden nyelvtn átlkíthtó-e ilyenné? 5.2. tétel. Minden környezetfüggetlen nyelvtnnk vn jólfésült egyenértékese. A felesleges szimbólumok kiszűrése mindenképpen hsznos, de z ε-szbályok és z egyszeres szbályok kiszűrése rontht z áttekinthetőségen. 5.1. feldt. Szűrjük ki z lábbi nyelvtnból felesleges szimbólumokt! Htározzuk meg nyelvtn áltl generált nyelvet! P = {S AC, A A, C c, S cc, C B, B be, F b} 5.3. Környezetfüggetlen nyelvtnok normállkji Milyen lkú átlkításokt trtlmzht Chomsky-féle normállk (CNF)? Hogyn lkíthtjuk ilyenné nyelvtnt? Milyen lkú átlkításokt trtlmzht Greibch-féle normállk (GNF)? Benne lehet-e z S ε szbály normállkokbn? Gykrn normállkok kevésbé áttekinthetőek, mint z eredeti nyelvtn, de gykrn z áttekinthető nyelvtn lpján nehezebb szintktiki elemzőprogrmot készíteni, mint normállkokból. Mivel fordítóprogrmokt számítógép futttj, ezért z elemezhetőség fontosbb, mint hogy z ember számár áttekinthető-e. Mit jelent, hogy egy szimbólum blrekurzív? H egy nyelv rekurzív, meg lehet-e szüntetni rekurzivitását? H egy nyelv blrekurzív, meg lehet-e szüntetni blrekurzivitását? Miért kell blrekurzivitást megszüntetni? Lehet-e Chomsky-féle normállk blrekurzív? Indokoljuk! Lehet-e Greibch-féle normállk blrekurzív? Indokoljuk! 5.4. Veremutomták Beolvsás irány s 0 s 1 s 2 s 3 s 4 s 5 Σ Q,q 0,δ,F Soron következő jel beolvsás Véges állpotú vezérlőmű veremmemóri (LIFO) Z Γ Σ szlgábécé q 0 kezdőállpot (q 0 Q) Γ veremábécé Q állpotok Z veremlj jel (Z Γ) F végállpotok (F Q) δ mozgási szbályok A veremutomt kezdetben kezdőállpotbn tlálhtó, és z olvsófej szlg elején tlálhtó, ugynúgy, mint véges utomtánál. A lényeges különbség bbn vn, hogy egy verem cstlkozik vezérlőműhöz, így következő állpot ttól is függhet, hogy mi vn verem tetején. A veremutomt működésekor mi feltételezzük, hogy minden lépésben csk verem legtetejének trtlmát tudjuk megvizsgálni, és esetleg nem is vgyunk kíváncsik erre legfelső elemre. A veremben kezdetben sem üres: egy veremlj jel tlálhtó benne, mit Z-vel fogunk jelölni ( Bch-könyv Z 0 -ll). Ez hsznos lesz mjd, h meg kell vizsgálnunk, hogy leszedtük-e z összes szimbólumot, mit veremre rktunk. Azokt szimbólumokt, melyek veremre kerülhetnek, veremábécének nevezzük. A következő állpot veremutomtánál már nem csk z eredeti állpottól és szlgról olvsott jeltől függhet, hnem verem felső elemétől is függhet. A mozgási szbály normál esetben vlhogy így néz ki veremutomtánál: δ(q 1,b,X) = (q 2,AX) Ez zt jelenti, hogyh q 1 állpotbn vn veremutomt, szlgon következő szimbólum b, és verem tetején X tlálhtó, kkor átmehetünk q 2 állpotb, miközben AX-et írunk veremre. A továbbikbn, mikor konfigurációsorozttl fogjuk levezetni egy szó felismerését, verem trtlmát egymás mellé fogjuk írni. A verem-trtlom értelmezéséhez szükség vn egy megállpodásr: mi úgy fogjuk leírni veremtrtlmt, hogy végén szereplő szimbólum vn verem lján, z elején szereplő tetején, hogy veremutomt felépítéséről szóló ábrán is láthtó. 12

Tehát fenti szbály szerint verem tetején tlálhtó szimbólum vizsgáltához verem tetején levő szimbólumot be kell olvsni (más tntárgybn tlán tlálkoztk POP utsítássl), így fenti mozgási szbály lklmzáskor verem tetejéről eltűnik z X, viszont helyettel AX-et írok. Tehát összességében verem trtlm nnyibn változott két veremművelet után, hogy z eredetileg ott lévő X fölé egy A került. A mozgási szbályokt mjd ritkán fogjuk fenti formábn írni, leggykrbbn állpotgráfon ábrázoljuk. A fenti átmeneti szbályt következő formábn ábrázoljuk. b, X/AX q 1 q 2 A korábbi szövegben két helyen kiemeltük feltételes módot. A mozgási szbályok esetén megengedjük, hogy egy mozgás során ne kelljen mindenképpen vizsgálni szó következő szimbólumát. H nem vizsgáljuk, kkor z olvsófej sem lép tovább következő szimbólumr. Ilyenkor mozgási szbálybn szimbólum helyére z üres szó jelét, ε-t írjuk. Például δ(q 1,ε,X) = (q 2,AX) mozgási szbály esetén, h q 1 -ben vgyok, és X vn verem tetején, kkor szlgon következő betűtől függetlenül tovább mehetek következő állpotb. Ezt fentihez hsonlón ábrázoljuk. ε, X/AX q 1 q 2 A másik feltételes mód rr utl, hogy egy mozgási szbálybn elmrdht verem tetejének vizsgált is. Ilyenkor nem is vesszük le verem tetejéről z ott tlálhtó szimbólumot. Az lábbi első példábn, z, hogy mozgás létrejöhet-e pillntnyi állpoton kívül csk szlgon következő szimbólumtól fog függeni, z másodikbn pedig csk pillntnyi állpottól. δ(q 2,b,ε) = (q 2,B) δ(q 1,ε,ε) = (q 1,AB) Fontos észrevenni, hogy fenti szbályok esetén ε jel nem eleme sem veremábécének, sem szlgábécének. A ε nem egy szimbólumot jelöl, hnem egy szót, melynek történetesen null hosszúság. A mozgási szbályok tehát függvények szokásos jelölésével leírv következő típusúk: δ : Q (Σ {ε}) (Γ {ε}) Q Γ. A függvényérékként fellépő pár második tgj kárhány (null vgy több) veremábécébeli szimbólumból állht. Az lábbi szbályt lklmzv például mozgáskor veremről törlődik egy X. δ(q 2,b,X) = (q 0,ε) A mozgási szbályok tisztázás után egy ngyon fontos lépés vn hátr: nnk tisztázás, hogy mikor mondjuk, hogy egy szlgr írt szót felismert veremutomt. A veremutomtánk kétféle működési módj vn, zz tuljdonképpen veremutomtánk kétféle definíciój, melyekben ez feltétel különböző. 1. A végállpottl felismerő veremutomt ( véges utomtákhoz hsonlón) kkor ismeri fel szót, h szó végigolvsáskor végállpotb kerül, vgy további lépésekkel végállpotb tud jutni. 2. Az üres veremmel felismerő veremutomt kkor ismeri fel szót, h szó végigolvsáskor üres lesz verem, vgy további lépésekkel ki tudj üríteni vermet. Az üres veremmel felismerő veremutomt definiásához nem is szükséges végállpotokt megdni. A végállpottl felismerő veremutomtát tehát M(Q, q 0, Σ, Γ, δ, F) htos htározz meg, z üres veremmel felismerő veremutomtát pedig z M(Q, q 0, Σ, Γ, δ) Azt, hogy z egyik utomt sem ngyobb tudású, z lábbi tétel mondj ki. 5.3. tétel. Egy nyelvhez kkor és cskis kkor létezik olyn veremutomt mely zt végállpottl ismeri fel, h létezik olyn veremutomt mely üres veremmel ismeri fel. Ez tétel teszi lehetővé, hogy következő tételben (mi környezetfüggetlen nyelvek és veremutomták közötti hsonló kpcsoltról szól, mint mi reguláris nyelvek és véges utomták között vn) ne kelljen pontosítni, hogy veremutomt melyik működési módjáról beszélünk. 5.4. tétel. Egy L nyelvet pontosn kkor ismer fel (leglább) egy veremutomt, h L környezetfüggetlen nyelv. A fenti két tételt mi nem bizonyítjuk. H vlkit érdekel, Bch-könyvben megtlálj. Korábbn volt szó ról, hogy véges utomták működését konfigurációsorozttl lehet leírni. A konfiguráció trtlmzz z összes tudást, mi hhoz kell, hogy z utomt további működése meghtározhtó legyen. A véges utomtánál elegendő volt pillntnyi állpot és szlgon levő szó még nem olvsott részének ismerete. A veremutomtánál egy hrmdik dolgot, verem teljes trtlmát is ismerni kell. A konfigurációsorozttl történő levezetésre egy lábbi példábn és Bch-könyvben is tlálhtunk példát. 13

ε, Z/ε 5.4.1. A kérdések, mikre tudni kell válszolni Mikor mondjuk, hogy egy végállpottl felismerő veremutomt felismert egy szót? Mikor mondjuk, hogy egy üres veremmel felismerő veremutomt felismert egy szót? Miket kell megdni z egyik illetve másik megdásához? Bővebb-e z egyik áltl felismert nyelvek hlmz, mint másik áltl felismerté? Több nyelvet lehet-e felismertetni, h nem csk legfelső veremértéket tudj olvsni z utomt? Melyik milyen nyelvosztályt ismer fel? (Igzolni nem kell.) Ismerni kell z áltlunk órán hsznált gráfos megjelenítést. A δ mozgási szbályokkl megdott lkot át kell tudni lkítni gráffá, és viszont. Egy szó felismerését konfigurációsorozttl meg kell tudni dni. (Bch-könyv elektronikus változt 107. oldl.) A verem lj szimbólumnk én továbbikbn Z-t hsználom Z 0 helyett, igzodv JFLAP-hez. 5.3. péld. Alkítsuk át z lábbi mozgási szbályokt + végállpotokt állpotgráffá! δ(q 0,,Z) = (q 1,XZ) δ(q 1,,X) = (q 1,XX) δ(q 2,b,X) = (q 2,ε) F = {q 0 } δ(q 1,b,X) = (q 2,ε) δ(q 2,ε,Z) = (q 0,ε) Vezessük le konfigurációsorozttl z bbb, b, b szvkt, h lehet. H nem lehet, vezessük le ddig, míg el nem kd levezetés. Htározzuk meg, hogy determinisztikus-e z utomt! Milyen nyelvet fog felismerni? Megoldás: q 1, X/XX q 0, Z/XZ b, X/ε q 2 b, X/ε (bbb,q 0,Z) (bbb,q 1,XZ) (bbb,q 1,XXZ) (bb,q 2,XZ) (b,q 2,Z) Nem tudjuk végigolvsni z bbb szót, mert z utolsó szituációr nincs szbály, mivel továbbmehetnénk. Az bbb szó tehát nem szv fenti veremutomt áltl generált nyelvnek. bbb L(M) (b,q 0,Z) (b,q 1,XZ) (b,q 1,XXZ) (ε,q 2,XZ) Sikerült végigolvsni szót, de nem végállpotb jutottm, és nem is tudok átmenni végállpotb, mert hhoz verem tetején Z-nek kellene lennie. Tehát b sem eleme z utomt áltl generált nyelvnek. (b,q 0,Z) (b,q 1,XZ) (ε,q 2,Z) (ε,q 0,ε) Sikerült végigolvsni szót, és végigolvsás után lehetőség vn rr, hogy végállpotb átmenjünk. Tehát z utomt elfogdt z b szót. b L(M) Az utomt determinisztikus. Bár végén ε htásár megy át q 0 -b, de q 2 -ből rr helyzetre, h verem tetején Z vn, csk ez z egyetlen átmenet lehetséges. A véges utomtáknál egy ε-szbály mindig nemdeterminizmust okoz, itt verem tetejét is figyelni kell. A többi állpotnál pedig kimenő nyilkon szereplő szlgábécé-beli szimbólumok különböznek. A fenti utomt végállpotbn mrd, h üres szvunk (ε) volt szó. Máskülönben csk kkor tud elindulni, h -vl kezdődik. Ilyenkor minden -nál rk veremre egy X-et. H b jön ezután, kkor átmegy q 2 állpotb és onnntól b szimbólumok htásár leszedegeti z X-eket. Csk kkor tud végén q 0 végállpotb átmenni, h z összes X-et leszedte. Mivel ilyenkor vermlj jel eltűnik, veremutomt működése nem tud folyttódni. Tehát z utomt z lábbi nyelvet fogdj el: G = { i b i i 0} = {ε,b,bb,bbb,...} 14

5.5. Feldtok környezetfüggetlen nyelvekhez és veremutomtákhoz 5.2. feldt. Először hgyj el zt 0 vgy több szbályt, melyek nem férnek bele egy környezetfüggetlen nyelvtnb! (A tnult szűrések csk környezetfüggetlen nyelvtnokr működnek.) S AB; C E; A A; B b; A ; S bb; MiK ULS; B bc; E C Szűrje ki tnult módszerrel felesleges szimbólumokt, és írj le megmrdt levezetési szbályokt! (A szűrés követhető legyen ppíron.) Szűrés után z lábbi szimbólumok bizonyultk feleslegesnek: { } F =. Vezesse le lépésenként b szót, és rjzolj le levezetési fáját! Megoldás: A Mikulásos áltlános, z S AB környezetfüggetlen, többi reguláris. Elég nnyit tudni hhoz, hogy csk környezetfüggetlenbe beleférőket trtsuk meg, hogy zok bloldlán egyetlen nemterminális (zz szokásos jelölésünkkel ngybetű) állht. B = {,b,a,b,s}. Alulról szűrés után, és legvégén is következőek mrdnk meg: S S AB; A A; B b; A ; S bb; A B A b A A 5.3. feldt. Htározzuk meg, hogy z lábbi utomt felismeri-e üres veremmel z bbcbb illetve bcb szvkt! H igen vezessük le konfigurációsorozttl! Melyik nyelvet ismeri fel? Adjuk meg δ mozgásszbályokt, Q állpothlmzt, z F végállpot-hlmzt, z elemzendő nyelv Σ ábécéjét, Γ veremábécét., ε/, /ε c, ε/ε ε, Z/ε q 0 q 1 q 2 b, ε/b b, b/ε (Mi megengedjük, hogy verem tetejének olvsás nélkül mehessen tovább új állpotb. Bch Iván könyvében lévő veremutomt-változt minden lépésben kiolvss verem trtlmát, legfeljebb visszírj zt. Az lábbi példábn is ilyen szerepel. Ez z eltérés ugynúgy nem befojásolj veremutomtávl felismerhető nyelvek hlmzát, mint hogy z sem, hogy üres veremmel vgy végállpottl felismerő utomtát hsználok-e. Érdemes lehet kitlálni, hogyn lehet csökkenteni eggyel szükséges állpotok számát, és jelentősen szükséges mozgásszbályok számát, h kihsználjuk, hogy nem muszáj kiolvsni veremtrtlmt.) 5.4. feldt. Az lábbi ábrán egy veremutomt állpotdigrmmj láthtó. 0, X/XX 0, X/ε 0, Z/XZ 1, X/X ε, Z/ε q 0 q 1 q 2 q 3 Vezessük le konfigurációsorozttl (míg lehet), hogy 00101 szót végállpottl felismeri-e! Indokoljuk, miért vgy miért nem! Az utomt állpothlmz Q =, végállpot-hlmz F =, 15

z elemzendő nyelv ábécéje Σ =, veremábécéje Γ =. Két (teszőlegesen válsztott) δ mozgásszbály Htározzuk meg, hogy z lábbi utomt felismeri-e végállpottl z ε, 0001000, 10 illetve 01 szvkt! Melyik nyelvet ismeri fel? Megoldás: A 00101, ε, 10 és 01 szvkt nem ismeri fel, 0001000 szót igen. A {0 i 10 i i > 0} = {010,00100,0001000,...} nyelvet ismeri fel ez veremutomt végállpottl és üres veremmel is.. 5.5. feldt. Htározzuk meg, hogy z lábbi utomt felismeri-e végállpottl z bb illetve szvkt! H igen vezessük le konfigurációsorozttl! Melyik nyelvet ismeri fel? Adjuk meg δ mozgásszbályokt, Q állpothlmzt, z F végállpot-hlmzt, z elemzendő nyelv Σ ábécéjét, Γ veremábécét., A/AA, B/AB, A/ε, Z/AZ q 0 q 1, A/ε b, B/ε q 2 ε, Z/ε q 3 b, Z/BZ b, A/BA b, B/BB b, B/ε Megjegyzés H megengedjük, hogy fenti utomtánk ne kelljen mindig ellenőrizni verem tetején lévő jelet ( per előtt lehessen ε is), kkor z lábbi egyszerűbb utomtát is hsználhtnánk., ε/a, A/ε q 0, A/ε q 1 ε, Z/ε q 2 b, B/ε b, ε/b b, B/ε Érdemes észrevenni, hogy ez z utomt nem determinisztikus. Érdemes kipróbálni z,, bbbb szvkr. Ahányszor két egymásutáni ugynolyn betűhöz ér, konfigurációsorozt elágzht. Ami érdekes, hogy z áltl felismert {wcw 1 w {, b} } nyelvhez nem is lehet determinisztikus utomtát készíteni. Ellenben véges utomtákkl tehát, nem minden nem determinisztikus veremutomtához lehet vele ekvivlens determinisztikust tlálni. 5.6. feldt. Adjon meg egy utomtát, mely szbályos zárójelezések nyelvét ismeri fel üres veremmel! Figyelem! Ez nem z órán említett {( i ) i i > 0} nyelv. {(),(()),()(),((())),(()()),(((()))),(()()()),((())()),...} 5.7. feldt. Adjunk példát z lábbi nyelvtnból álrekurzív nemterminálisr. Az lábbi nyelvtnból csk zokt szbályokt hgyjuk meg, melyek nem trtlmznk felesleges szimbólumokt. S b, S B, S BC, C cc, B Bb, B b, C DC, D d A megmrdt nyelvtnból htározzuk meg z áltl generált nyelv ábécéjét, és generált nyelvet. Végeredmény A C rekurzív (két szbály szerint is: C cc, C DC), h C egyszer belekerül levezetésbe, kkor soh nem tudunk tőle megszbdulni, tehát álrekurzív. Az megmrdó levezetési szbályok: S b, S B, B Bb, B b (Zárthelyin és viszgán természetesen le kell írni ilyenkor szűrés teljes folymtát.) A generált nyelv ábécéje Σ = {b}. A generált nyelv: L = {b i i > 0} = {b,bb,bbb,bbbb,...} 16

Megjegyzés Az előbbi nyelvhez egy kevesebb szbályt trtlmzó nyelvtn is készíthető: S b, S bs 5.8. feldt. Hozzuk Chomsky-féle normálformár következő nyelvtnt! Vn-e blrekurzió z eredeti, illetve kpott nyelvtnbn? H igen, hol? S SSb; S b; Megoldás: Az első átlkítás után: S SÂS ˆB; S Â ˆB; Â ; ˆB b Miután z első szbályt felszeleteltük : S SS 1 ; S 1 ÂS 2 ; S 2 S ˆB; S Â ˆB; Â ; ˆB b Mind z eredeti nyelvtn, mind CNF-ben levőben z első levezetési szbálybn egyetlen lépésben vn blrekurzió. 6. Tudnivlók és kiegészítések fordító utomtákhoz Bch könyv 4. fejezetében vn szó ról. Véges fordító (Mely-utomt változt): Beolvsás irány s 0 s 1 s 2 s 3... s n Σ Soron következő szimbólum beolvsás Véges állpotú vezérlőmű Q, q 0 Lefordított szimbólum kiírás d 0 d 1 d 2 d 3... d m Kiírás irány A véges fordítónk kétféle változt vn. A Bch-könyv zzl fogllkozik, mikor z átmenetek során történik szlgr írás. Ezt szkirodlom Mely-utomtánk nevezi. Lehet olyn véges fordítót is készíteni, mely kkor ír szlgr, mikor egy új állpotb kerül, ezt szkirodlom Moore-utomtánk nevezi. Beláthtó, hogy mindkét fordítócslád ugynrr képes: tehát minden Mely-utomtához vn olyn Moore-utomt, melyek, h zonos bemenő szlgon lévő szó, kkor ugynzt írják ki szlgr, és fordítv; minden Moore-utomtához vn ilyen Mely-utomt. Milyen változti vnnk véges fordítóknk? Mi lényegi különbség működésükben? Részletesen mgyrázz el Mely-utomt működését! Adjon meg egy példát rá állpotgráffl! 6.1. feldt. Htározz meg, mit d vissz z lábbi ábrán szereplő utomt bbbbbbb szór, zz mire fordítj? Mi lesz bemeneti szlg Σ ábécéje, és kimeneti szlg ábécéje? b/= /= B b/ε S /ε A /n b/n Adjon meg olyn szimbólum-soroztot, melynél fenti utomt esetén kimeneti szlgon =nn==nn== jelenik meg. Egyértelmű-e ez szimbólum-sorozt? H nem, djon meg még egyet! A véges fordítók egy bemeneti nyelvhez egy kimeneti nyelvet rendelnek. Azz, h bemeneti nyelv minden szvár lefutttjuk z utomtát, kkor kimeneti szlgon kpott szvk hlmzát nevezzük kimeneti nyelvnek. Mit mondhtunk véges fordító kimeneti nyelvéről, h bemeneti nyelve reguláris nyelvet, illetve környezetfüggetlen nyelv? A szintxisvezérelt fordítási sémák 2015 tvszán még nem kellenek. Mgyrázz el veremfordító működését! 17

Alább vn egy péld veremfordítór. Az első / előtt vn, hogy mit olvs bemenő szlgról, után, hogy mit ír ki kimenő szlgr. A második per előtt, hogy mit olvs veremről (egy szimbólum vgy semmi), után, hogy mit ír rá (null vgy több szimbólum veremábécéből). /c; A/AA /c; b/ab /c; A/ε /c; Z/AZ q 0 q 1 c/ε; A/A q 2 ε/ε; Z/ε q 3 c/ε; B/B b/d; Z/BZ b/d; B/BB b/b; /BA b/d; B/ε 18

7. Tudnivlók z informtikus hllgtók Formális nyelvek tntárgyához A segédletek egy része z http://elerning.uni-obud.hu oldl Formális nyelvek kurzusábn tlálhtó. Kötelező irodlom: Bch Iván: Formális nyelvek, TypoTEX, 2001, z Interneten legálisn elérhető ingyenesen. Az http://elerning.uni-obud.hu oldl segédletei Ajánlott irodlom: Roger Penrose: A császár új elméje, Akdémii Kidó, 1993, különösen Turing-géppel fogllkozó rész, de többit is jánlom Demetrovics, Denev, Pvlov: A számítástudomány mtemtiki lpji, Tnkönyvkidó, Budpest, 1989, Két fejezete: 4. A formális nyelvek és utomták, 5. A Turing-gép Tóth Mihály: Bevezetés formális nyelvek és utomták elméletébe (Hndout, 1992.) 19

7.1. 2011. tvszi bedndó feldtok, nppli info DFA = determinisztikus véges utomt Az lábbi feldtokt JFLAP-pel kell megoldni. Az utomtához leglább öt-öt jól válsztott elfogdott és elutsított szót kell kipróbálni. Több feldthoz is kellhet, hogy 0 is páros szám. 1. Készítsen olyn DFA-t, mely zokt 0 és 1 szimbólumokból álló nyelvet fogdják el, melyek pártln 1-est trtlmznk! 2. Készítsen olyn DFA-t, mely zokt 0 és 1 szimbólumokból álló nyelvet fogdják el, melyek páros 1-est trtlmznk! 3. Készítsen olyn DFA-t, melyek zt nyelvet fogdják el, melyben tetszőleges számú után páros számú b szimbólum jön! 4. Készítsen olyn DFA-t, melyek zt nyelvet fogdják el, melyben tetszőleges számú után pártln számú b szimbólum jön! 5. Készítsen olyn DFA-t, melyek zt nyelvet fogdják el, melyben két vgy három után ugynnnyi b szimbólum jön! 6. Készítsen olyn DFA-t, melyek zt nyelvet fogdják el, melyben két vgy három után eggyel kevesebb b szimbólum jön! 7. Készítsen olyn DFA-t, melyek zt nyelvet fogdják el, melynek szvibn csk és b szimbólum lehet, és csk pártln hosszúságú szvk. 8. Készítsen olyn DFA-t, melyek olyn és b szimbólumokból álló szvkt fogd el, melyek b-re végződnek. 9. Készítsen olyn DFA-t, melyek olyn és b szimbólumokból álló szvkt fogd el, melyek nem b-re végződnek. 10. Készítsen olyn DFA-t, melyek olyn szvkt fogd el, melyek néggyel oszthtó számok bináris formái. 11. Készítsen olyn DFA-t, melyek olyn szvkt fogd el, melyek néggyel nem oszthtó számok bináris formái. 12. Készítsen olyn DFA-t, melyek olyn 0 és 1 szimbólumokból álló szvkt fogd el, melyben nem szerepel két 1-es egymás után. 13. Készítsen olyn DFA-t, melyek olyn és b szimbólumokból álló szvkt fogd el, melyben vn 2 egymás utáni szimbólum. - Imre Mári 14. Készítsen olyn DFA-t, melyek olyn 0 és 1 szimbólumokból álló szvkt fogd el, melyben szerepel 010 szimbólumsorozt. 15. Készítsen olyn DFA-t, melyek olyn 0 és 1 szimbólumokból álló szvkt fogd el, melyben nem szerepel 010 szimbólumsorozt. 16. Készítsen olyn DFA-t, melyek olyn. és - szimbólumokból álló szvkt fogd el, melyben szerepel...---... szimbólumsorozt. 17. Készítsen olyn DFA-t, melyek olyn. és - szimbólumokból álló szvkt fogd el, melyben nem szerepel...---... szimbólumsorozt. 8. Tételsor 1. Nyelvek, nyelvtnok, utomták kpcsolt. Mit jelent, hogy egy nyelvtn generál egy nyelvet, ill. egy utomt felismer egy nyelvet? Milyen utomták társíthtók nyelvosztályokhoz (villmosmérnököknek csk két legszűkebb nyelvosztályhoz)? 2. Chomsky-féle nyelv- és nyelvtn-osztályok 3. Véges utomták felépítése, működése, megdásuk állpotgráffl, és csoportosításuk (determinisztikusság, teljesség) 4. Reguláris nyelvek és véges utomták kpcsolt, egymásb lkítás 5. Műveletek nyelvekkel (komplemens, unio, metszet, konktenáció, trnzitív lezárt). Milyen nyelv lesz ezek eredménye reguláris nyelvek esetén? 6. Reguláris kifejezések 7. Környezetfüggetlen nyelvtnok és nyelvek egyértelműsége; két műveletet és zárójelet trtlmzó kifejezések (E, T, F nemterminálisokt trtlmzó) nyelvtn; levezetési f; péld nem egyértelmű nyelvre 8. Környezetfüggetlen nyelvtnok jólfésült nyelvtnná lkítás 20