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

Hasonló dokumentumok
Formális Nyelvek - 1.

Formális nyelvek - 5.

Automaták és formális nyelvek

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:

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:

Formális nyelvek - 9.

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

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

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

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

Chomsky-féle hierarchia

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1.

ALGEBRAI NYELV- ÉS KÓDELMÉLET. Babcsányi István

Automaták mint elfogadók (akceptorok)

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

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Chomsky-féle hierarchia

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 automaták vizsgához statisztikailag igazolt várható vizsgakérdések


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

Csempe átíró nyelvtanok

Nyelv hatványa: Legyen L egy nyelv, nemnegatív egész hatványai,,. (rek. definició) Nyelv lezártja (iteráltja): Legyen L egy nyelv. L nyelv lezártja.

ZH feladatok megoldásai

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Formális nyelvek és automaták

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására

Formális nyelvek és automaták előadások

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

A PÁRHUZAMOSSÁG VIZSGÁLATA A KLASSZIKUS FORMÁLIS NYELVEKHEZ KAPCSOLÓDÓAN. Nagy Benedek Debreceni Egyetem Informatikai Kar Számítógéptudományi Tanszék

A Számítástudomány alapjai

Nagy Gábor compalg.inf.elte.hu/ nagy

1 2. gyakorlat Matematikai és nyelvi alapfogalmak. dr. Kallós Gábor

Deníciók és tételek a beugró vizsgára

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Diszkrét matematika 2. estis képzés

A SZÁMÍTÁSTUDOMÁNY ALAPJAI

MintaFeladatok 1.ZH Megoldások

Feladatok. BNF,EBNF,szintaxisgráf

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

A valós számok halmaza

2014. szeptember 24. és 26. Dr. Vincze Szilvia

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

Formális Nyelvek és Automaták Dömösi, Pál Falucskai, János Horváth, Géza Mecsei, Zoltán Nagy, Benedek

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

Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)

Formális nyelvek és automaták

A tananyag a TÁMOP A/1-11/ számú projekt keretében készült.

A tananyag a TÁMOP A/1-11/ számú projekt keretében készült.

MintaFeladatok 1.ZH Megoldások

Dr. Vincze Szilvia;

A TANTÁRGY ADATLAPJA

Fogalomtár a Formális nyelvek és

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

1. előadás: Halmazelmélet, számfogalom, teljes

Példák. Ismert a római számok halmaza, amely intuitív szintaxissal rendelkezik, hiszen pl.

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Atomataelmélet: A Rabin Scott-automata

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

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

A Turing-gép. Formális nyelvek III.

Formális nyelvek előadások tavaszi félév

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

KOVÁCS BÉLA, MATEMATIKA I.

Felismerhető nyelvek zártsági tulajdonságai II... slide #30. Véges nemdeterminisztikus automata... slide #21

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

Alap fatranszformátorok II


Diszkrét matematika 2. estis képzés

Valasek Gábor

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

Formális Nyelvek és Automaták. Dömösi, Pál Falucskai, János Horváth, Géza Mecsei, Zoltán Nagy, Benedek

MintaFeladatok 2.ZH Megoldások

Véges automaták, reguláris nyelvek

1. előadás Matematikai és nyelvi alapok, Szintaktikai vizsgálat

Hatványozás. A hatványozás azonosságai

KOVÁCS BÉLA, MATEMATIKA I.

2011. szeptember 14. Dr. Vincze Szilvia;

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Nagy Gábor compalg.inf.elte.hu/ nagy

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

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

Csima Judit október 24.

Nyelvek és automaták augusztus

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

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Diszkrét matematika II., 8. előadás. Vektorterek


Matematika alapjai; Feladatok

1. előadás Matematikai és nyelvi alapok, Szintaktikai vizsgálat

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

KOVÁCS BÉLA, MATEMATIKA I.

Számításelmélet. Második előadás

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

Átírás:

Formális Nyelvek - 1. Előadás Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1

A kurzus célja, hogy megismerkedjünk a formális nyelvek és automaták elméletének, a számítástudomány egyik tradícionális ágának alapjaival. 2

Irodalom: 1. György E. Révész, Introduction to Formal Languages, McGraw-Hill Book Company, 1983. További irodalom: 2. A. Salomaa, Formal Languages, Acedemic Press, 1973. 3. K. Krithivasan, Rama, R., Introduction to Formal Languages, Automata Theory and Computation, Pearson, 2009. 4. J. E. Hopcroft, Rajeev Motwani, J.D. Ullman, Introduction to Automata Theory, Languages, and Computation. Second Edition. Addison-Wesley (2001). 3

Magyar nyelvű irodalom: 1. Révész György, Bevezetés a formális nyelvek elméletébe, Tankönyvkiadó, 1977. 2. Fülöp Zoltán, Formális nyelvek és szintaktikus elemzésük, Polygon, Szeged, 2004. 4

Tudnivalók Az előadások alapjául az irodalomjegyzék [1], [2] és [3] eleme szolgál. Az előadásvázlatok (a slide-ok) minden lényeges információt tartalmaznak és kizárólag tanulási célokra használhatók. A kurzus vizsgával zárul, a vizsga során az előadásokon elhangzott és az előadásvázlatokon szereplő anyagot kérem számon. Az előadásokon további információk is elhangozhatnak, ezek kiegészítő jellegűek. A vizsga előtt három héttel részletes információt adok a számonkérés alapjául szolgáló anyagról és a számonkérés módjáról. 5

Az előadások látogatása nem kötelező, de ajánlott. A gyakorlatok látogatása kötelező, a lehetséges hiányzások számát a gyakorlatvezetők ismertetni fogják a gyakorlatokon. A gyakorlati jegy megszerzésének feltételeit is a gyakorlatvezetők fogják meghatározni és ismertetni.

Az előadásvázlatokat.pdf file formájában az előadások utáni pénteken felteszem a honlapomra (http://people.inf.elte.hu/csuhaj), és a pontos webcímet a Neptun rendszeren keresztül közölni fogom. Minden szerdán de. 10-12 h között fogadóórám van a Déli tömb 2.511-es hivatali szobámban, ahol az érdeklődőket szeretettel várom. Ugyancsak keressenek meg emailben (csuhaj@inf.elte.hu) vagy a fogadóórán, ha bármilyen kérdésük felmerül a tantárggyal kapcsolatban. Jó tanulást kívánok! Budapest, 2013. február Csuhaj Varjú Erzsébet 6

A kurzus tartalmának rövid leírása 1. Bevezetés, a formális nyelv fogalma: alapvető fogalmak és jelölések,szavak, nyelvek, grammatikák, a grammatikák Chomsky-féle hierarchiája. 2. Műveletek nyelveken: definíciók, nyelvosztályok zártsági tulajdonságai. 3. Környezetfüggetlen grammatikák és nyelvek: redukált grammatikák, a Chomsky normálforma, levezetési fa, lineáris grammatikák, reguláris grammatikák, reguláris nyelvek, reguláris kifejezések. A generált nyelvek és nyelvosztályok tulajdonságai. 4. Környezetfüggő- és mondatszerkezetű grammatikák: hossz-nemcsökkentő grammatikák, Kuroda normál forma, mondatszerkezetű grammatikák normálformái. A generált nyelvek és nyelvosztályok tulajdonságai. Nyelvosztályok Chomskyféle hierarchiája. 7

A kurzus tartalmának rövid leírása - folytatás 1. Automaták és nyelvek: véges automaták, veremautomaták, kétvermű automata, lineárisan korlátolt automata, Turing gép. Az automaták tulajdonságai, a felismert nyelvosztályok, az automaták és a grammatikák kapcsolatai. 2. Szintaktikai elemzés: kapcsolat szintaxis és szemantika között; környezetfüggetlen grammatikák és nyelvek egyértelműsége; LL(k) és LR(k) grammatikák. 8

A formális nyelvek és automaták elmélete - a gyökerek A nyelv grammatikájának fogalma már kb. időszámításunk előtt az V. században felmerült Indiában (Panini). Fontosabb lépések: Axel Thue, Emil Post, matematika, a XX. század eleje. W. Mc Culloch, W. Pitts, 1943, az idegrendszer modellje - a véges állapotú gép; S.C. Kleene, 1956, neurális háló - a véges automata. Noam Chomsky, 1959, matematikai model, az angol nyelv grammatikájának matematikai modellje. Programnyelvek, ALGOL 60, 1960 9

Mivel foglalkozik a formális nyelvek és automaták elmélete? A formális nyelvek elmélete szimbólumsorozatok halmazaival foglalkozik. Célja - többek között - véges, tömör leírását adni az ilyen halmazoknak. Az elmélet módszereket ad formális nyelvek definiá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. A szimbólum fogalmát alapfogalomnak tekintjük, ezért nem definiáljuk. 10

Milyen tudományágakhoz kapcsolódnak a formális nyelvek és automaták? A természetes nyelvek gépi feldolgozása, matematikai modellezése, matematikai nyelvészet, programozási nyelvek, fordítóprogramok elmélete, kódelmélet, képfeldolgozás, 11

mintafelismerés, fejlődő rendszerek modellezése (Lindenmayer rendszerek), molekuláris számítástudomány (DNS számítás), multi-ágens rendszerek formális leírásai, stb.

Alapfogalmak és jelölések - I Szimbólumok véges nemüres halmazát ábécének nevezzük. Példa: V = {a,b,c} Egy V ábécé elemeiből képzett véges sorozatokat V feletti szavaknak vagy sztringeknek mondunk. Példa: Legyen az ábécé V = {a,b,c} és akkor aaabbbccc egy szó. A 0 hosszúságú sorozatot üres szónak nevezzük és ε-nal jelöljük. A V ábécé feletti szavak halmazát (beleértve az üres szót is) V -gal, a nemüres szavak halmazát V + -szal jelöljük. 12

Alapfogalmak és jelölések - II Legyen V egy ábécé és legyenek u,v V feletti szavak (azaz, legyen u,v V ). Az uv szót az u és v szavak konkatenáltjának nevezzük. Példa: Legyen az ábécé V = {a,b,c}, legyenek u = abb és v = cbb szavak. Akkor uv = abbcbb az u és v konkatenáltja. A konkatenáció mint művelet asszociatív, de általában nem kommutatív. Példa: Legyen u = ab, v = ba, akkor uv = abba és vu = baab. 13

Alapfogalmak és jelölések - II - folytatás Legyen V egy ábécé. Megállapíthatjuk, hogy V zárt a konkatenáció műveletére nézve (azaz, bármely u,v V esetén uv V teljesül), továbbá a konkatenáció egységelemes művelet, ahol az egységelem ε (azaz, bármely u V esetén uε V és εu V ). 14

Alapfogalmak és jelölések - III Legyen i nemnegatív egész szám és legyen w a V ábécé feletti szó (w V ). A w szó i-edik hatványa alatt a w szó i példányának konkatenálját értjük és w i -vel jelöljük. Példa: Legyen az ábécé V = {a,b,c}, és legyen w = abc. Akkor w 3 = abcabcabc. Konvenció alapján minden w V szóra w 0 = ε. 15

Alapfogalmak és jelölések - IV Legyen V egy ábécé és legyen w egy V feletti szó (azaz, legyen w V ). A w szó hosszán a w szót alkotó szimbólumok számát értjük (azaz, w mint sorozat hosszát) és w -vel jelöljük. Példa: Legyen az ábécé V = {a,b,c} és legyen w = abcccc. Akkor w hossza 6. Az üres szó hossza - nyilvánvalóan - 0, azaz ε = 0. 16

Alapfogalmak és jelölések - V Egy V ábécé feletti két u és v szót azonosnak nevezünk, ha mint szimbólumsorozatok egyenlőek (azaz, mint sorozatok elemről-elemre megegyeznek.) Legyen V egy ábécé és legyenek u és v szavak V felett. Az u szót a v szó részszavának nevezzük, ha v = xuy teljesül valamely x és y V feletti szavakra. Az u szót a v szó valódi részszavának mondjuk, ha x és y közül legalább az egyik nemüres, azaz, xy ε. 17

Példa: Legyen V = {a,b,c} ábécé és legyen v = aabbbcc szó. Az u = abbbc szó valódi részszava v-nek. Ha x = ε, akkor u-t a v szó prefixének, ha y = ε, akkor u-t a v szó szufixének hívjuk. Legyen v = aabbbcc szó. Az u = aabbb szó prefixe, a bbbcc szó szufixe v-nek.

Alapfogalmak és jelölések - VI Legyen u egy V ábécé feletti szó. Az u szó tükörképe vagy fordítottja alatt azt a szót értjük, amelyet úgy kapunk, hogy u szimbólumait megfordított sorrendben írjuk. Az u szó tükörképét u 1 -gyel jelöljük. Legyen u = a 1...a n, a i V, 1 i n. Ekkor u 1 = a n...a 1. 18

Alapfogalmak és jelölések - VII Legyen V egy ábécé és legyen L tetszőleges részhalmaza V -nak. Akkor L-et egy V feletti nyelvnek nevezzük. Az üres nyelv - amely egyetlen szót sem tartalmaz - jelölése. Egy V ábécé feletti nyelvet véges nyelvnek mondunk, ha véges számú szót tartalmaz, ellenkező esetben végtelen nyelvről beszélünk. 19

Példák nyelvekre Legyen V = {a,b} ábécé. Akkor L 1 = {a,b,ε} véges nyelv, L 2 = {a i b i 0 i} végtelen nyelv. Példa L 2 -beli szavakra: ab,aabb,aaabbb,... Legyen L 3 = {uu 1 u V }. Példa L 3 -beli szavakra: u = ababb, u 1 = bbaba és uu 1 = ababbbbaba. 20

Nyelvek sokféle módon előálĺıthatók, egyik mód a nyelvek generálása grammatikával. 21

Generatív grammatika - Definíció Egy G generatív grammatikán (grammatikán vagy (generatív) nyelvtanon) egy (N,T,P,S) négyest értünk, ahol N és T diszjunkt ábécék, a nemterminális és a terminális szimbólumok ábécéi; S N a kezdőszimbólum (axióma), P véges halmaza (x,y) rendezett pároknak, ahol x,y (N T) és x legalább egy nemterminális szimbólumot tartalmaz. A P halmaz elemeit átírási szabályoknak (röviden szabályoknak) vagy produkcióknak nevezzük. Az (x,y) jelölés helyett használhatjuk az x y jelölést is, ahol a szimbólum nem eleme az (N T) halmaznak. 22

Példa Generativ Grammatikára Legyen G = (N,T,P,S) egy generatív grammatika, ahol N = {S} a nemterminálisok ábécéje, T = {a,b} a terminálisok ábécéje, és P = {S asb, S ab, S ba} a szabályok halmaza. 23

Közvetlen levezetési lépés - Definíció Legyen G = (N,T,P,S) egy generatív grammatika és legyen u,v (N T). Azt mondjuk, hogy a v szó közvetlenül vagy egy lépésben levezethető az u szóból G-ben és ezt u = G v módon jelöljük, ha u = u 1 xu 2, v = u 1 yu 2, u 1,u 2 (N T) és x y P. 24

Példa közvetlen levezetésre Legyen G = (N,T,P,S) egy generatív grammatika, ahol N = {S} a nemterminálisok ábécéje, T = {a,b} a terminálisok ábécéje és P = {S asb,s ab,s ba} a szabályok halmaza. Legyen u = aaasbbb. Akkor v = aaaasbbbb közvetlenül (egy lépésben) levezethető u-ból, azaz u = G v, ugyanis u 1 = aaa, u 2 = bbb, x = S, y = asb és S asb P. 25

Levezetés - Definíció Legyen G = (N,T,P,S) egy generatív grammatika és legyen u,v (N T). Azt mondjuk, hogy a v szó k lépésben levezethető az u szóból G- ben, k 1, ha létezik olyan u 1,...,u k+1 (N T) szavakból álló sorozat, amelyre u = u 1, v = u k+1, valamint u i = G u i+1, 1 i k teljesül. A v szó levezethető az u szóból G-ben, ha vagy u = v, vagy létezik olyan k 1 szám, hogy a v szó az u szóból k lépésben levezethető. 26

Levezetés Legyen G = (N,T,P,S) egy tetszőleges generatív grammatika és legyen u,v (N T). Azt mondjuk, hogy a v szó levezethető az u szóból G-ben és ezt u = G v módon jelöljük, ha vagy u = v vagy valamely z (N T) szóra fennáll, hogy u = G z és z = G v teljesül. = a = reláció reflexív tranzitív lezártját jelöli. A = reláció tranzítív lezártját = + -val jelöljük. A kezdőszimbólumból levezethető sztringeket mondatformának nevezzük. 27

A generált nyelv - Definíció Legyen G = (N,T,P,S) egy tetszőleges generatív grammatika. A G grammatika által generált L(G) nyelv alatt az szavakból álló halmazt értjük. L(G) = {w S = G w,w T } Azaz, a G grammatika által generált nyelv a T halmaz azon elemei, amelyek levezethetők a G grammatika S kezdőszimbólumából. 28

Példa Legyen G = (N,T,P,S) egy generatív grammatika, ahol N = {S}, T = {a,b} és P = {S asb,s ab,s ba}. Akkor L(G) = {a n abb n,a n bab n n 0}. Példa egy levezetésre: S = G asb = G aasbb = G aababb. 29

Példa Legyen G = (N,T,P,S) egy generatív grammatika, ahol N = {S,X,Y}, T = {a,b,c}. Legyen P = {S abc, S axbc, Xb bx, Xc Ybcc, by Yb, ay aax, ay aa}. Akkor L(G) = {a n b n c n n 1}. Példa egy levezetésre: S = axbc = G abxc = G abybcc = G aybbcc = G aabbcc. 30

Ekvivalens Grammatikák és Nyelvek Két generatív grammatikát (gyengén) ekvivalensnek nevezünk, ha ugyanazt a nyelvet generálják. Két nyelvet gyengén ekvivalensnek mondunk, ha legfeljebb az üres szóban különböznek. 31

A Chomsky-féle hierarchia A G = (N, T, P, S) generatív grammatikát i-típusúnak mondjuk, i = 0,1,2,3, ha P szabályhalmazára teljesülnek a következők: i = 0: Nincs korlátozás. i = 1: P minden szabálya u 1 Au 2 u 1 vu 2 alakú, ahol u 1,u 2,v (N T), A N, és v ε, kivéve az S ε alakú szabályt, feltéve, hogy P-ben ilyen szabály létezik. Ha P tartalmazza az S ε szabályt, akkor S nem fordul elő P egyetlen szabályának jobboldalán sem. i = 2: P minden szabálya A v alakú, ahol A N és v (N T). i = 3: P minden szabálya vagy A ub vagy A u, alakú, ahol A,B N és u T. 32

Példa Legyen G = (N,T,P,S) egy generatív grammatika, ahol N = {S}, T = {a,b} és P = {S asb,s ab,s ba}. Ez a grammatika 2-típusú (környezetfüggetlen). 33

A Chomsky-féle hierarchia - folytatás Legyen i = 0,1,2,3. Egy L nyelvet i-típusúnak mondunk, ha i-típusú grammatikával generálható. Az i-típusú nyelvek osztályát L i -vel jelöljük. A 0-típusú grammatikát mondatszerkezetű grammatikának, az 1-típusú grammatikát környezetfüggő grammatikának, a 2-típusú grammatikát környezetfüggetlen grammatikának is nevezzük. A 3-típusú grammatikát reguláris vagy véges állapotú grammatikának is mondjuk. A 0,1,2,3-típusú nyelvek osztályait rendre rekurzíven felsorolható, környezetfüggő, környezetfüggetlen, valamint reguláris nyelvosztálynak is mondjuk. 34

A Chomsky-féle hierarchia - folytatás Nyilvánvaló, hogy L 3 L 2 L 0 és L 1 L 0. A későbbiekben megmutatjuk, hogy L 3 L 2 L 1 L 0. Megjegyzés: Könnyen észrevehetjük, hogy a L 2 és a L 1 nyelvosztályok közötti, a tartalmazásra vonatkozó reláció nem azonnal látható a megfelelő grammatikák definíciójából. 35

Hivatkozás: György E. Révész, Introduction to Formal Languages, McGraw-Hill Book Company, 1983, Chapter 1. 36