http://www.ms.sapientia.ro/~kasa/formalis.htm



Hasonló dokumentumok
akonyv 2006/12/18 11:53 page i #1 Formális nyelvek és fordítóprogramok

LIMBAJE FORMALE ȘI COMPILATOARE Lucrări de laborator FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK

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

9. előadás Környezetfüggetlen nyelvek

AUTOMATÁK ÉS FORMÁLIS NYELVEK PÉLDATÁR


1.1. Gyökök és hatványozás Hatványozás Gyökök Azonosságok Egyenlőtlenségek... 3

Chomsky-féle hierarchia

4. előadás. Vektorok

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!

FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK. LABORGYAKORLATOK

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

Tárgyév adata december 31. Tárgyév adata december 31. A tétel megnevezése

Miskolci Egyetem GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR. Analízis I. példatár. (kidolgozott megoldásokkal) elektronikus feladatgyűjtemény

Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai.

Egy csodálatos egyenesről (A Simson-egyenes) Bíró Bálint, Eger


Egyetemi matematika az iskolában

MATEMATIKA tankönyvcsaládunkat

Számítástudomány matematikai alapjai segédlet táv és levelező

Matematika tanmenet (A) az HHT-Arany János Tehetségfejleszt Program el készít -gazdagító évfolyama számára

Analízis 1. (BSc) vizsgakérdések Programtervez informatikus szak tanév 2. félév

5. Trigonometria. 2 cos 40 cos 20 sin 20. BC kifejezés pontos értéke?

2. Halmazelmélet (megoldások)

Fejezetek a lineáris algebrából PTE-PMMK, Műszaki Informatika Bsc. Dr. Kersner Róbert

MATEMATIKA TANTERV Bevezetés Összesen: 432 óra Célok és feladatok

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

Chomsky-féle hierarchia

Bevezetés a számításelméletbe I. feladatgyűjtemény. Szeszlér Dávid, Wiener Gábor

Mátrixok február Feladat: Legyen ( ( B = A =

Első sorozat (2000. május 22. du.) 1. Oldjamegavalós számok halmazán a. cos x + sin2 x cos x. +sinx +sin2x =

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Eötvös József Főiskola Műszaki Fakultás

Matematikai logika. Nagy Károly 2009

Matematika emelt szintû érettségi témakörök Összeállította: Kovácsné Németh Sarolta (gimnáziumi tanár)

Nemzeti versenyek évfolyam

matematikai statisztika október 24.

Matematikai és matematikai statisztikai alapismeretek

Valószín ségelmélet házi feladatok

Halmazelmélet. 2. fejezet 2-1

MATEMATIKA KOMPETENCIATERÜLET A

Analízisfeladat-gyűjtemény IV.

Feladatok. BNF,EBNF,szintaxisgráf

XIII. Bolyai Konferencia Bodnár József Eötvös József Collegium, ELTE TTK, III. matematikus. A véletlen nyomában

Valószínűségszámítás

Fordítóprogramok szerkesztése Flex és Bison segítségével

Félévi időbeosztás (nagyjából) házi feladat beadási határidőkkel (pontosan) Valószínűségszámítás 2. matematikusoknak és fizikusoknak, 2009 tavasz

Gondolkodjunk a fizika segı tse ge vel!

D G 0 ;8 ; 0 0 " & *!"!#$%&'" )! "#$%&' (! )* +,-. /0 )* **! / 0 1 ) " 8 9 : 7 ; 9 < = > A! B C D E +,-./0! 1#! 2 3!./0

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

ZH feladatok megoldásai

Lineáris algebra - jegyzet. Kupán Pál


Arany Dániel Matematikai Tanulóverseny 2007/2008-as tanév 2. forduló haladók I. kategória

hogy a megismert fogalmakat és tételeket változatos területeken használhatjuk Az adatok, táblázatok, grafikonok értelmezésének megismerése nagyban

Az áprilisi vizsga anyaga a fekete betűkkel írott szöveg! A zölddel írott rész az érettségi vizsgáig még megtanulandó anyag!

MATEMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

HELYI TANTERV MATEMATIKA tanításához Szakközépiskola évfolyam

Matematikai programozás gyakorlatok

Gáspár Csaba. Analízis

Matematikai logika 1 A MATEMATIKAI LOGIKA ALAPJAI. Pécsi Tudományegyetem, Bevezetés

Mátrixaritmetika. Tartalom:

Analízis előadás és gyakorlat vázlat

Egy emelt szintű érettségi feladat kapcsán Ábrahám Gábor, Szeged

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:

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

MATEMATIKA A és B variáció

Intergrált Intenzív Matematika Érettségi

Széchenyi István Egyetem, 2005

7. előadás Környezetfüggetlen nyelvtanok

Formális Nyelvek - 1. Előadás

Dr. Kuczmann Miklós JELEK ÉS RENDSZEREK


Középszintű érettségi feladatsorok és megoldásaik Összeállította: Pataki János; dátum: november. I. rész

A készülék használata elõtt kérjük olvassa el figyelmesen a használati utasítást.

MATEMATIKA évfolyam

Kártyajátékok és bűvésztrükkök

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

9. ÉVFOLYAM. Tájékozottság a racionális számkörben. Az azonosságok ismerete és alkalmazásuk. Számok abszolútértéke, normál alakja.

Miskolci Egyetem. Diszkrét matek I. Vizsga-jegyzet. Hegedűs Ádám Imre

NUMERIKUS MÓDSZEREK FARAGÓ ISTVÁN HORVÁTH RÓBERT. Ismertető Tartalomjegyzék Pályázati támogatás Gondozó

Kőszegi Irén MATEMATIKA. 9. évfolyam

I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

Párhuzamos algoritmusmodellek Herendi, Tamás Nagy, Benedek

KÖVETELMÉNYEK 2015/ félév. Informatika II.

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:

LÁNG CSABÁNÉ SZÁMELMÉLET. Példák és feladatok. ELTE IK Budapest javított kiadás

Tanmenetjavaslat 5. osztály

PEDAGÓGIAI PROGRAM ÉS HELYI TANTERV MÓDOSÍTÁSA

A TANTÁRGY ADATLAPJA

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Kockázati folyamatok. Sz cs Gábor. Szeged, szi félév. Szegedi Tudományegyetem, Bolyai Intézet

Mára új helyzet alakult ki: a korábbiakhoz képest nagyságrendekkel komplexebb

Feladatok: 1. Add meg a következ balreguláris nyelvtannak megfelel jobbreguláris nyelvtant!

A két csapatra osztás leggyakoribb megvalósításai: Lyukas teli (vagy sima vagy nem lyukas)

Bevezetés. Párhuzamos vetítés és tulajdonságai

Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály, középszint

MATEMATIKA ÉRETTSÉGI május 9. EMELT SZINT

Add meg az összeadásban szereplő számok elnevezéseit!

Átírás:

Formális nyelvek és fordítóprogramok http://www.ms.sapientia.ro/~kasa/formalis.htm Könyvészet 1. Csörnyei Zoltán, Kása Zoltán, Formális nyelvek és fordítóprogramok, Kolozsvári Egyetemi Kiadó, 2007. 2. Csörnyei Zoltán, Fordítóprogramok, Typotex Kiadó, Budapest, 2006. 3. Csörnyei Zoltán, Fordítási algoritmusok, Erdélyi Tankönyvtanács, Kolozsvár, 2000. 4. Demetrovics János, Denev, J., Pavlov, R., A számítástudomány matematikai alapjai, Nemzeti Tankönyvkiadó, Budapest, 1999. 5. Fülöp Zoltán, Formális nyelvek és szintaktikus elemzésük, Polygon, Szeged, 1999. 6. Livovschi, L., Popovici, C. P., eorgescu, H., Țăndăreanu, N., Bazele informaticii, Editura Didactica şi Pedagogică, Bucureşti, 1981. 7. Manna, Z., Programozáselmélet, Műszaki Könyvkiadó, Budapest, 1981. 8. Révész yörgy, Bevezetés a formális nyelvek elméletébe, Akadémiai Kiadó, Budapest, 1979. 9. Bach Iván, Formális nyelvek, Typotex, Budapest, 2005. http://mek.oszk.hu/05000/05099/ 1

Alapfogalmak ábécé: szimbólumok (jelek) egy nem üres, véges halmaza Például Σ = {a, b, c, d, 0, 1} ábécé betűi: a, b, c, d, 0, 1. a 1 a 2... a n szó, a 1, a 2,..., a n Σ, n 0, n 0 a szó hossza Ha w = a 1 a 2... a n, akkor w = n. n = 0, üres szó: ε (vagy λ) Σ = {a 1 a 2... a n n 0, a 1, a 2,..., a n Σ} Σ + = Σ \ {ε}, Σ n Σ = Σ 0 Σ 1... Σ n... és Σ + = Σ 1 Σ 2... Σ n... Ha u = a 1 a 2... a m és v = b 1 b 2... b n, akkor u = v, ha m = n, és a i = b i, i = 1, 2,..., n. Σ -ban: konkatenáció (illesztés, szorzat, összefűzés) u = a 1 a 2... a m, v = b 1 b 2... b n : = uv = a 1 a 2... a m b 1 b 2... b n uv = u + v asszociatív, nem kommutatív, van egységeleme = Σ monoid (egységelemes félcsoport) szavak hatványozása: Ha u Σ akkor u 0 = ε u n = u n 1 u, n 1 u = a 1 a 2... a n szó tükörképe u 1 = a n a n 1... a 1 (jelölések: u R, ũ) ( u 1 ) 1 = u és (uv) 1 = v 1 u 1. 2

v részszava u-nak, ha p, q szavak úgy, hogy u = pvq. Ha pq ε, akkor v valódi részszava u-nak. p az u kezdőszelete (prefixuma), q pedig végszelete (szufixuma) L Σ : Σ feletti nyelv (formális nyelv) üres nyelv, {ε} az üres szóból álló nyelv Műveletek nyelvekkel L, L 1, L 2 egy-egy Σ feletti nyelv egyesítés: L 1 L 2 = {u Σ u L 1 vagy u L 2 } metszet: L 1 L 2 = {u Σ u L 1 és u L 2 } különbség: L 1 \ L 2 = {u Σ u L 1 és u L 2 } komplementum (v. komplementer nyelv): L = Σ \L (szokásos jelölése még L ) szorzat: L 1 L 2 = {uv u L 1, v L 2 } nyelv hatványa: L 0 = {ε}, L n = L n 1 L, n 1 nyelv iteráltja: L = i=0 Li = L 0 L L 2... L i... L + = L \ {ε}, L + = L i. i=1 tükrözés: L 1 = {u 1 u L} ( L 1 ) 1 = L, ( L 1 ) n = (L n ) 1 reguláris műveletek: egyesítés, szorzás, iteráció 3

Nyelvek megadása Nyelvek megadása elemeik felsorolásával Nyelvek például: L 1 = {ε, 0, 1}, L 2 = {a, aa, aaa, ab, ba, aba}, L 3 = {ε, ab, aabb, aaabbb, aaaabbbb...} Nyelvek megadása tulajdonság segítségével L 4 = {a n b n n = 0, 1, 2,...} (tehát L 4 = L 3 ) L 5 = {uu 1 u Σ }, L 6 = {u {a, b} n a (u) = n b (u)}, ahol n a (u) az u szóban levő a betűk számát jelöli. Nyelvek megadása nyelvtannal generatív nyelvtan vagy nyelvtan (grammatika) eneratív nyelvtan a = (N, T, P, S) rendezett négyes, ahol N, a változók (nemterminális jelek) ábécéje, T, a terminális jelek ábécéje, ahol N T =, P (N T ) N(N T ) (N T ) véges halmaz, vagyis P az (u, v) alakú helyettesítési szabályok vagy produkciók véges halmaza, ahol u, v (N T ), és u tartalmaz legalább egy nemterminális jelet. (u, v) jelölés helyett u v is használható. S N a nyelvtan kezdőszimbóluma. Az u v, azaz (u, v) szabályban: u bal, v pedig jobb oldal. Rövidítés: u v 1, u v 2,..., u v r helyett u v 1 v 2... v r 4

(N T ) halmazban a közvetlen levezetés v. közvetlen deriváció reláció: u = v, ha u = p 1 pp 2, v = p 1 qp 2 és (p, q) P. Más jelek: vagy a =. = helyett lehet = A = reláció reflexív és tranzitív lezártját u = v, ha w 0, w 1,..., w n (N T ), n 0, = jelöli: levezetés vagy deriváció. u = w 0,, w 0 = w 1, w 1 = w 2,..., w n 1 = w n, w n = v vagy w 0 = w 1 = w 2 =... = w n 1 = w n u + = v, ahol n 1 (u = v esetében, ha n = 0, akkor u = v.) A = (N, T, P, S) nyelvtan által generált nyelv: L() = {u T S = u}. Példa. Legyen = (N, T, P, S), ahol N = {S}, T = {a, b}, P = {S ab, S asb}. L() = {a n b n n 1}, mivel vagy S S = asb = a 2 Sb 2 =... = a n 1 Sb n 1 = a n b n, = a n b n. 5

1 és 2 nyelvtanok ekvivalensek: 1 = 2, ha L( 1 ) = L( 2 ). Példa. 1. Adott a következő két nyelvtan, 1 = ({S}, {a, b}, {S asb, S ε}, S) és 2 = ({S}, {a, b}, {S asb, S ab}, S). Ekkor L( 1 ) \ {ε} = L( 2 ). A két nyelvtan nem ekvivalens. 2. A következő két nyelvtan ekvivalens, mivel mindegyik az {a n b n c n n 1} nyelvet generálja. 1 = (N 1, T, P 1, S 1 ), ahol N 1 = {S 1, X, Y }, T = {a, b, c}, P 1 = {S 1 abc, S 1 axbc, Xb bx, Xc Y bcc, by Y b, ay aax, ay aa}. 2 = (N 2, T, P 2, S 2 ), ahol N 2 = {S 2, A, B, C}, P 2 = {S 2 as 2 BC, S 2 abc, CB BC, ab ab, bb bb, bc bc, cc cc}. Tétel. Létezik olyan formális nyelv, amelyet nem lehet nyelvtannal megadni. A bizonyításhoz kódoljuk a nyelvtanokat. Egy adott = (N, T, P, S) nyelvtan esetében legyen N = {S 1, S 2,... S n }, T = {a 1, a 2,... a m } és S = S 1. A kódolás a következô: S i kódja 10 } 11.{{.. 11} 01, a i kódja 100 } 11.{{.. 11} 001 i-szer i-szer A kódolásban a jeleket 000 választja el, a nyíl jele 0000, a szabályokat pedig 00000 jelsorozattal választjuk el. Nyílván, elég csak a szabályokat kódolni. Példaként vegyük a következô nyelvtant: 6

= ({S}, {a, b}, {S asb, S ab}, S). S kódja 10101, a kódja 1001001, b kódja 10011001. A nyelvtan kódja: 10101 } {{ } 0000 } 1001001 {{ } 000 } 10101 {{ } 000 } 10011001 {{ } 00000 } 10101 {{ } 0000 } 1001001 {{ } 000 } 10011001 {{ } Ennek a kódolásnak az alapján a nyelvtanok sorba rendezhetôk, elôször a kód hossza szerint, majd az azonos hosszúságúak esetében ábécésorrendbe: 1, 2,..., k,.... Tekintsük most a T ábécé fölötti nyelvek halmazát: L T = {L L T }. A T halmaz megszámlálhatóan végtelen, hisz szavai sorrendbe írhatók hosszuk szerint, azon belül pedig ábécésorrendbe. Legyen ez a sorrend s 0, s 1, s 2,..., ahol természetesen s 0 = ε. Ekkor minden L T nyelvnek megfeleltethetünk egy b 0, b 1, b 2,... végtelen bináris sorozatot a következôképpen: { 1, ha si L b i = i = 0, 1, 2,... 0, ha s i L Könnyű belátni, hogy az így keletkezett bináris sorozatok halmaza megszámlálhatatlanul végtelen, hisz minden sorozat elképzelhetô úgy, mint egy 1-nél kisebb pozitív valós szám kettes számrendszerbeli ábrázolása (a tizedesvesszôt az elsô számjegy elé képzeljük). Fordítva is igaz, hogy minden 1-nél kisebb pozitív szám kettes számrendszerbeli ábrázolása megfelel egy ilyen sorozatnak, ha a tizedesvesszô utáni részt vesszük. Mivel a (0, 1) intervallum kontinuum számosságú, az lesz a végtelen bináris sorozatok halmaza is. Tehát L T is kontinuum számosságú. Mivel a formális nyelvek halmaza kontinuum számosságú, a nyelvtanok megszámlálhatóan végtelen halmaza és a nyelvek kontinuum számosságú halmaza között nem létezik kölcsönös és egyértelmž megfeleltetés. Tehát, létezik olyan formális nyelv, amelyet nem lehet nyelvtannal megadni. 7

Chomsky-féle nyelvosztályok Ha a helyettesítési szabályokra bizonyos megkötéseket teszünk, a következő négy nyelvtantípust különböztethetjük meg. A = (N, T, P, S) nyelvtan 0-típusú (általános vagy mondatstruktúrájú), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira. 1-típusú (környezetfüggő), ha minden szabálya uxv uwv alakú, ahol X N, u, v (N T ), w (N T ) +. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel szabály jobb oldalán. 2-típusú (környezetfüggetlen), ha minden szabálya X w alakú, ahol X N, w (N T ) +. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel szabály jobb oldalán. 3-típusú (reguláris), ha szabályai X ay, X a alakúak, ahol a T és X, Y N. Ezenkívül megengedhető az S ε szabály is, ha S nem szerepel szabály jobb oldalán. Ha i-típusú nyelvtan, akkor az L() nyelvet szintén i-típusúnak (általánosnak, környezetfüggőnek, környezetfüggetlennek, regulárisnak) nevezzük. Egy L nyelv i-típusú (i = 0, 1, 2, 3), ha létezik egy i-típusú nyelvtan, amelyik az L nyelvet generálja, vagyis L = L(). Jelölje L i (i = 0, 1, 2, 3) az i-típusú nyelvek osztályát. Ekkor bizonyítható, hogy L 0 L 1 L 2 L 3. A nyelvtantípusok fenti értelmezése alapján a bennfoglalás ( ) nyilvánvaló, de a szigorú bennfoglalás ( ) bizonyításra szorul. Megjegyezzük, hogy a nyelvtantípusokat néhol kicsit másképpen értelmezik, a 2- és 3-típusoknál megengednek tetszőleges X ε szabályokat is. A regulási nyelvtant úgy is lehet értelmezi, hogy szabályai X uy, X u alakúak, ahol u T. 8

Példák. Környezetfüggő nyelvtan 1 = (N 1, T 1, P 1, S 1 ), ahol N 1 = {S 1, A, B, C}, T 1 = {a, 0, 1} P 1 elemei: S 1 ACA AC AACA ABa AaB B AB A A 0 1 Az L( 1 ) nyelv olyan uav szavakból áll, ahol u, v {0, 1} és u v. Környezetfüggetlen nyelvtan 2 = (N 2, T 2, P 2, K), ahol N 2 = {K, T, F }, T 2 = {+,, (, ), a} P 2 elemei: K K + T T T T F F F (K) a Az L( 2 ) olyan algebrai kifejezésekből áll, amelyek a T 2 halmaz elemeiből képezhetők. Reguláris nyelvtan 3 = (N 3, T 3, P 3, S 3 ), ahol N 3 = {S 3, A, B}, T 3 = {a, b} P 3 elemei: S 3 aa A ab a B ab bb a b Az L( 3 ) nyelv olyan, a és b betűkből képezhető szavakból áll, amelyek legalább két a-val kezdődnek. 9