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



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

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

Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:

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

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

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

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

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

HALMAZELMÉLET feladatsor 1.

Automaták és formális nyelvek

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

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

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

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!

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.1 Halmazelméleti fogalmak, jelölések

Dr. Vincze Szilvia;

SZÁMÍTÁSTUDOMÁNY ALAPJAI

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

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?

A valós számok halmaza

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

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.

KOVÁCS BÉLA, MATEMATIKA I.

Diszkrét matematika I.

Diszkrét matematika 1. középszint

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

Halmazelméleti alapfogalmak

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

DiMat II Végtelen halmazok

KOVÁCS BÉLA, MATEMATIKA I.

2011. szeptember 14. Dr. Vincze Szilvia;

Diszkrét matematika I.

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

A relációelmélet alapjai

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

Általános algebra. 1. Algebrai struktúra, izomorfizmus. 3. Kongruencia, faktoralgebra március Homomorfizmus, homomorfiatétel

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

1 2. előadás Matematikai és nyelvi alapfogalmak. dr. Kallós Gábor

Gy ur uk aprilis 11.

Matematika III. 2. Eseményalgebra Prof. Dr. Závoti, József

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

KOVÁCS BÉLA, MATEMATIKA I.

Leképezések. Leképezések tulajdonságai. Számosságok.

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

1. Algebrai alapok: Melyek műveletek az alábbiak közül?

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:

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

Mikor van egy változó egy kvantor hatáskörében? Milyen tulajdonságokkal rendelkezik a,,részhalmaz fogalom?

Diszkrét matematika I.

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Chomsky-féle hierarchia

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

ELTE IK Esti képzés tavaszi félév. Tartalom

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

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

Matematikai logika és halmazelmélet

Analízis I. beugró vizsgakérdések

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

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

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

Diszkrét matematika I.

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet.

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

MM CSOPORTELMÉLET GYAKORLAT ( )

Permutációk véges halmazon (el adásvázlat, február 12.)

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

Diszkrét matematika 2.

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

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

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

Formális nyelvek és automaták


SE EKK EIFTI Matematikai analízis

Matematika alapjai; Feladatok

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

KOVÁCS BÉLA, MATEMATIKA I.

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

Diszkrét matematika HALMAZALGEBRA. Halmazalgebra

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

Formális Nyelvek - 1.

Vizsgatematika Bevezetés a matematikába II tárgyhoz tavasz esti tagozat

Készítette: Ernyei Kitti. Halmazok

Irodalom. (a) A T, B T, (b) A + B, C + D, D C, (c) 3A, (d) AD, DA, B T A, 1 2 B = 1 C = A = 1 0 D = (a) 1 1 3, B T = = ( ) ; A T = 1 0

Diszkrét matematika I.

A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.

Diszkrét matematika I.

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

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

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

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Struktúra nélküli adatszerkezetek

Térinformatikai algoritmusok Elemi algoritmusok

Diszkrét matematika I. gyakorlat

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

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

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

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

A félév során előkerülő témakörök

Átírás:

1. előadás Matematikai és nyelvi alapok, Dr. Kallós Gábor 2013 2014 1 Tartalom Matematikai alapfogalmak Halmazok Relációk Függvények Homomorfizmusok Nyelvi alapfogalmak Ábécé, szavak, nyelvek Műveletek szavakkal és nyelvekkel Kifejezés Köznapi nyelv Programozási nyelv 2

Matematikai alapfogalmak Halmazelmélet Halmaz és halmazhoz való hozzátartozás: nem definiált alapfogalom Tudjuk: a B és a B közül csak pontosan az egyik teljesül Halmaz megadási módja Kapcsos zárójelben felsoroljuk az elemeit Megadjuk az elemeket jellemző tulajdonságo(ka)t (a módszer alkalmazhatóságát a részhalmaz axióma garantálja) { h a h elem T tulajdonságú } Példa: { x R 0 < x < 1} A halmazelmélet (pontos matematikai) felépítése: axiómák, definíciók, állítások, tételek Meghatározottsági axióma Legyenek A és B halmazok. A akkor és csak akkor egyenlő B-vel, ha minden x A esetén x B, és minden y B esetén y A. Azaz: elemeik azonosak Definíció Legyenek A és B halmazok. A része B-nek, ha minden x A-ra x B is teljesül (jelölés: A B). Tétel (halmazok egyenlősége): A = B, ha A B és B A Üres halmaz axióma Létezik olyan halmaz, amelynek nincs eleme. Ez az üres halmaz, jelölése. Állítás: Pontosan egy ilyen halmaz létezik 3 Matematikai alapfogalmak Halmazelmélet (folyt.) Definíciók (Legyenek A és B halmazok) Unió, metszet, különbséghalmaz értelmezése (tudjuk) Jelölések: A B, A B, A \ B Az unió axiómából Disztributivitási tulajdonság, De-Morgan azonosságok, egyéb összefüggések (igazolhatók) A és B diszjunkt, ha nincs közös elemük Komplementer halmaz (H alaphalmazra vonatkozóan) H \ A, Jelölés: Hatványhalmaz axióma Legyen A halmaz. Létezik olyan halmaz, amely tartalmazza A minden egyes részhalmazát. Ezt a halmazt A hatványhalmazának nevezzük, P(A)-val jelöljük Állítás: P(A) elemszáma 2 A (ez indukcióval igazolható) Definíció: Legyenek A és B halmazok. A és B direkt (vagy Descartes-féle) szorzata az összes olyan rendezett (x, y) számpárból álló halmaz, amelyeknél x A és y B. A direkt szorzat jele:. A B = {(x, y) x A és y B} (Rendezett pár definíció) Általánosítható n darab halmazra Feladat: Soroljuk fel A B elemeit, ahol A = {1, 2} és B = {3, 4, 5} 4

Matematikai alapfogalmak Relációk Definíció: Legyenek M 1, M 2,, M n tetszőleges halmazok. Egy ρ M 1 M 2 M n halmazt relációnak nevezünk (rendezett szám n-es) Megj.: Az üres halmaz is reláció (mert nincs olyan eleme, ami nem rendezett szám n-es) Ha n = 2, akkor ρ-t bináris relációnak nevezzük Elemei rendezett párok, jelölés: a, b vagy (a, b) Itt már beszélhetünk értelmezési tartományról és értékkészletről Legyen a A és b B egy ρ A B bináris reláció esetén. Ha ekkor a, b ρ teljesül, akkor azt mondjuk, hogy aρrelációban van b-vel. Jelölések: ρ(a, b), vagy ρ a, b, vagy aρb. Definíció: Legyenek ρ A B 1 és σ B 2 C bináris relációk. Két bináris reláció kompozíciójának (szorzatának) nevezzük azt a ρ σrelációt, ahol ρ σ A C, és ρ σ= { a, c b B 1 B 2 úgy, hogy a, b ρés b, c σ}. A kompozícióképzés nem kommutatív művelet Feladat: Legyen ρ = { n, n + 1 n N} és σ = { n, 3n n N}. Adjuk meg a ρ σés σ ρ relációkat! Egy ρ M M reláció k-adik (k 0) hatványát a következő módon értelmezzük: ρ 0 = { (a, a) a M}; ρ k + 1 = ρ k ρ, ha k 1 Nyilván ρ 1 = ρ 5 Matematikai alapfogalmak Relációk (folyt.) Definíciók + 2 3 k Egy ρ M M reláció tranzitív lezártja ρ = ρ U ρ U ρ U... = U ρ Egy ρ M M reláció reflexív, tranzitív lezártjaρ* = ρ 0 ρ + k= 1 ρ + mindig tranzitív, és ez a legszűkebb olyan reláció, amely tranzitív, és tartalmazza ρ-t ρ* reflexív és tranzitív, és a legszűkebb az ilyen tulajdonságúρ-t tartalmazó relációk közül Definíció: Egy ρ M M (homogén) bináris reláció reflexív, ha minden x M-re fennáll xρx; szimmetrikus, ha minden x, y M-re xρy yρx; antiszimmetrikus, ha minden x, y M-re xρyés yρx x=y; tranzitív, ha minden x, y, z M-re xρyés yρz xρz (Megj.: A homogén reláció meghatározása az, hogy értékkészlete része az értelmezési tartományának, de sokszor úgy használják, hogy a két halmaz megegyezik) Speciális relációk Definíció: A ρ (homogén) bináris reláció ekvivalencia-reláció, ha reflexív, szimm. és tranzitív Ekvivalencia-reláció példák: egyenesek párhuzamossága, szakaszok egybevágósága, számhalmazok egyenlősége Igazolható, hogy minden ekvivalencia-reláció M-et páronként diszjunkt, nem üres részhalmazokra bontja fel (ekvivalencia-osztályok), és a részhalmazokból reprezentáns elem választható (Egy A halmazrendszer az A halmaz osztályfelbontása, ha A elemeinek uniója A-t adja, és tetszőleges két A-beli elemre teljesül, hogy ha nem diszjunktak, akkor megegyeznek) Reprezentáns példák: egyenesek párhuzamossága irány fogalom; szakaszok egybevágósága hosszúság fogalom 6

Matematikai alapfogalmak Speciális relációk (folyt.) Definíció: A ρ (homogén) bináris reláció rendezési reláció, ha reflexív, antiszimmetrikus és tranzitív Ekkor (M, ρ)-t rendezett halmaznak nevezzük olyan (rendezett) pár, amelynek első komponense egy nem üres halmaz, második komponense pedig egy, a halmazon értelmezett rendezési reláció Rendezett halmaz példák: (N, ), és hasonlóan (Z, ), (Q, ), (R, ); (P(H), ) ahol H tetszőleges halmaz, részhalmaz tulajdonsággal; (N, ), (Z, ) itt az oszthatóság De: (N, <) és (Z, <) nem rendezett halmaz, mert < nem reflexív! Definíció: Egy f reláció függvény, ha minden x, y és x, z f esetén y = z Azaz ha nincs két olyan eleme, hogy az első komponensek megegyeznek, a másodikak pedig különbözők Jelölések függvény esetén: f(a, b) vagy a f b helyett b = f(a) Függvényekkel kapcsolatos fontos fogalmak (itt eml., összefoglaló módon, részl. nélkül) Értelmezési tartomány (D f ), értékkészlet (R f ), leképezés, helyettesítési érték (x-hez hozzárendelt elem) Függvényképző eljárások: függvény leszűkítése, függvények kompozíciója, függvény invertálása (invertálható kell, hogy legyen a függvény) Képhalmaz, X D f halmaz képe, Y R f halmaz ősképe Legyen f: A B. Azt mondjuk, hogy f az A-t B-be leképező injekció, ha f invertálható; f az A-t B-re leképező szuperjekció (szürjekció), ha R f = B; f az A és B közti bijekció, ha injekció és szuperjekció is 7 Matematikai alapfogalmak Definíció: Az (A, F) párt algebrának nevezzük, ahol A nem üres halmaz, F pedig az A- n értelmezett műveletek halmaza Példák algebrákra: (N, +), (N, {+, }) Definíció: Legyen (A, ) és (B, ) két algebra. Egy h: A B leképezést homomorfizmusnak nevezünk, ha injektív (monomorfizmus), azaz az értelmezési tartomány minden eleméhez az értékkészletnek pontosan egy eleme van hozzárendelve; és művelettartó, azaz minden a, b A esetén érvényes, hogy h(a b) = h(a) h(b). Ekkor A-t és h(a)-t homomorf(ak)nak nevezzük. A homomorfizmusok különös jelentősége az, hogy a definíciós halmaz struktúrájának típusát a képhalmazra viszik át (pl. csoportok) Egyes speciális struktúrák közötti homomorfizmusok (az algebrákon túl): csoportok, gyűrűk, vektorterek (köztük lineáris leképezések), rendezett halmazok Ha a h: A B függvény kölcsönösen egyértelmű (bijektív), és inverze is homomorfizmus, akkor izomorfizmusról beszélünk Az izomorf struktúrák algebrai nézőpont szerint megegyeznek Egyéb további speciális homomorfizmusok: Ha a leképezés szürjektív (epimorfizmus), illetve ha a leképzésnél B A (endomorfizmus) (Homomorf és izomorf struktúrákkal részletesen foglalkozunk még a számtud. slide-okon is) Félcsoport, monoid, csoport definíciója (számtud. slide-ok) 8

Nyelvi alapfogalmak Ábécé, szó Definíciók Ábécé: szimbólumok tetszőleges, nem üres, véges halmaza; jelölés: V (vagy Ʃ) A szimbólumokról feltesszük, hogy megkülönböztethetők és különböznek egymástól Szó (mondat): V elemeiből képzett sorozat, azaz a 1 a k, ahol k 0, és a 1,, a k V Üresszó (null szó): k = 0 eset, jele λ (néha ε) Összes szó halmaza V felett (benne az üres szó is); jelölés: V* Ha az üresszót nem engedjük meg: V + = V* {λ} (Megj.: Nem üres V halmaz esetén V* megszámlálhatóan végtelen) Szó hossza (V felett): szimbólumok száma benne, jelölés: w (w szóra) Rekurzív definíció is lehetséges Itt λ = 0 Példa Legyen Ʃ = {a, b} Néhány szóʃfelett: a, b, ab, bb, baa, aba, abba, baba, (Hány szót tudunk felsorolni?) Szavak hossza Ʃ felett: a = 1, ab = 2, Ʃ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, aba, } (Milyen rendezést célszerű itt alkalmazni? Hány darab n hosszú szót tudunk megadni?) 9 Nyelvi alapfogalmak Ábécé, szó (folyt.) Definíció Szavak egyenlősége: csak ha betűről-betűre megegyeznek, azaz valamely V*-beli p = a 1 a m és q = b 1 b n szavakat pontosan akkor tekintünk egyenlőknek, ha m = n és i = 1,, n-re a i = b i Tréfás példa Legyen V = {1, 2, +}. Ekkor V*-ban (persze nem matematikai értelemben ) fennáll, hogy 1+1 2, mivel az 1+1 szó nem egyezik meg betűről-betűre a 2 szóval. Definíció Szavak konkatenációja (egymás után írás, összefűzés, szorzás ): u és v V*-beli szavakra uv V* Érvényes: uv = u + v u n : az u szó n-szer egymás után írva (hatványozás) Itt is megadható rekurzív definíció u V*-ra u 0 = λ Igaz továbbá: xλ = λx = x De: a konkatenáció általában nem kommutatív! (azaz általában uv vu) Példa Legyen Ʃ = {a, b}. Ekkor az abbaʃ*-beli szó baba szóval való szorzata abbababa, ami nem egyezik meg a babaabba szóval. 10

Nyelvi alapfogalmak: szóműveletek Ábécé, szó (folyt.) Igazolható, hogy V* a konkatenáció művelettel egységelemes félcsoportot, monoidot alkot A művelet asszociatív, és az üresszó egység Definíció Legyenek x és w V*-beli szavak. Azt mondjuk, hogy x prefixe (kezdőszelete) w-nek, ha van olyan y V*-beli szó, hogy w = xy. Ha x, y λ, akkor valódi prefixről beszélünk Valódi prefixre: x = k a prefix hossza Hasonlóan értelmezhető egy szó szuffixe (végződése) Definíció Legyenek x és w V*-beli szavak. Azt mondjuk, hogy x részszava w-nek, ha van olyan y, z V*, hogy w = yxz (itt y és z lehet üresszó). Valódi részszó is hasonlóan értelmezhető Használatos az alszó, kezdő alszó, és befejező alszó megnevezés is Feladat: Adjunk meg részszót, prefixet és szuffixet az abbababa szónál! Hány különböző prefix lehetséges? (Szó tükörképe is definiálható, jelölés: w 1 ) 11 Nyelvi alapfogalmak Nyelv (vagy: V feletti nyelv, formális nyelv): V* tetszőleges L részhalmaza; azaz L V* Adott formális elem adott nyelvbe való tartozása egyértelműen eldönthető Egy nyelv lehet üres, véges vagy végtelen Üres nyelv: L = Csak az üres szót tartalmazó nyelv: L = {λ} (ennek van egy eleme) Egyszerű alapnyelvek: L = {a} típusúak A véges nyelvek elvileg elemeik felsorolásával megadhatók Teljes nyelv: L = V* (minden lehetséges szót tartalmaz) Megjegyzések Egy adott Ʃ ábécé feletti összes lehetséges nyelvek halmaza a Ʃ* összes részhalmazából alkotott halmaz, vagyis Ʃ* hatványhalmaza. Mivel Ʃ* számossága megszámlálhatóan végtelen, így egy véges, de nem üres Ʃ ábécé felett kontinuum sok (különböző) nyelv létezik. A hagyományos nyelvek (pl. magyar nyelv) nem tekinthetők formális nyelvnek abban az értelemben, hogy a nyelv halmaza nem tiszta, nem véglegesen lezárt, ill. részben szubjektív is; továbbá ugyanazon szónak lehet több jelentése Példa: Word helyesírás ellenőrzője (esettanulmányok) Feladat: Nézzük meg, hogy egyes, köznapinak tekinthető szavakat nem ismer fel, máskor számunkra teljesen magyartalan, ismeretlen szavakat elfogad 12

Nyelvi alapfogalmak Példa: nyelvek V = {0, 1,, 9} felett A magyar történelmi évszámok halmaza ekkor egy véges nyelv V felett Lehet persze szubjektív, de biztosan véges A páratlan számok halmaza (tízes számrendszer) egy V feletti végtelen nyelv Példa: néhány nyelv Ʃ = {a, b} felett Véges nyelvek {λ, a, aa, aab} {x Ʃ* x 7} Végtelen nyelvek {x Ʃ* x páratlan} {x Ʃ* x prím} {λ, ab, aabb, aaabbb, } = {a n b n n 0} Adjunk meg néhány további véges és végtelen nyelv példát! (Legyen például V = {0, 1} vagy V = {a, b}) (Megj.: Szükségünk lesz olyan eszközökre, amelyekkel az eddigieknél lényegesen bonyolultabb nyelveket is megadhatunk generatív nyelvtannal történő megadás, lásd később) 13 Műveletek nyelvekkel A nyelvek halmazok és jelsorozatok is egyben. Így a rajtuk értelmezett műveletek is kétféle típusúak. Boole műveletek (,, \, ) Reguláris műveletek (+,, *) Tetszőleges L 1, L 2 V* nyelvek esetén értelmezhető a nyelvek (mint halmazok) uniója, metszete, különbsége, illetve L 1 -nek a V*-ra vonatkozó komplementere, és ezek szintén V*-beliek A jelölések a megszokottak (,, \, ) Egy formális definíció (a többi hasonlóan) L 1 L 2 = {p p L 1 és p L 2 } A komplementer képzésnél nagyon vigyázni kell az alaphalmaz megadására (!) Példa: Az L = {λ, a, aa, aab} nyelv komplementere teljesen más a Ʃ = {a, b}, illetve a Ʃ' = {a, b, c} felett A konkatenációt is értelmezzük nyelvekre (ez a művelet halmazokra nincs értelmezve, itt a jelsorozat tulajdonság él!) L 1 L 2 = {uv u L 1, v L 2 } Általában L 1 L 2 L 2 L 1 Egy L 1 L 2 -beli szó nem feltétlenül csak egyféle módon bontható fel L 1 -beli és L 2 -beli elemekre A konkatenáció segítségével egy nyelv önmagával vett konkatenáltját (szorzatát) is értelmezhetjük 14

Műveletek nyelvekkel Nyelv i-edik hatványa L k = LL L Itt L 0 = {λ} (megállapodás szerint), L 1 = L Itt is lehetséges rekurzív definíció Ugyanúgy mint szavakra, használatos V k = VV V is (Az ábécé is nyelv, hiszen V V*. Így az ábécére is értelmezett minden nyelvművelet, esetleg triviális eredménnyel.) Kleene-iteráció, a konkatenáció lezárása L* = {λ} L LL LLL (Kleene-csillag), vagy illetve: L + = L LL LLL (Kleene-plusz) =U =0 i Azaz: az L*-beli elemek azok a jelsorozatok, amelyeket fel lehet úgy darabolni, hogy minden darab a nyelv mondata legyen (a darabok számára nincs megkötés) Itt L + = L* is előfordulhat, pontosan akkor, ha λ L Hasonlóan: i V* = {λ} V VV VVV, vagy V V (Kérdés: Konzekvens ez az előző definícióval?) =U =0 i Természetes kérdés: zártak-e különböző nyelvosztályok ezekre a műveletekre? Az L nyelvosztály zárt a műveletre, ha tetszőleges L 1, L 2 L-re mindig L 1 L 2 Lis teljesül (Hasonlóan definiálható az egyváltozós műveletre való zártság is) Később az ilyen típusú vizsgálatok fontosak lesznek L i L 15 Műveletek nyelvekkel Legyen V egy rögzített ábécé. Ekkor tetszőleges L, L 1, L 2, L 3 V* esetén érvényesek a következő összefüggések: L 1 L 2 = L 2 L 1 (az unió kommutatív) (L 1 L 2 ) L 3 = L 1 (L 2 L 3 ) (az unió asszociatív) L L = L (az unió idempotens) L = L = L (az unióra nézve létezik egységelem, a üres nyelv) L 1 L 2 = L 2 L 1 (a metszet kommutatív) (L 1 L 2 ) L 3 = L 1 (L 2 L 3 ) (a metszet asszociatív) L L= L (a metszet idempotens) L V* = V* L= L (a metszetre nézve létezik egységelem, a V* univerzális nyelv) (L 1 L 2 )L 3 = L 1 (L 2 L 3 ) (a konkatenáció asszociatív) L{λ} = {λ}l = L (a konkatenációra nézve létezik egységelem, és ez {λ}) L = L = (a konkatenációra nézve létezik nullelem, és ez ; nem lehet szópárokat készíteni) L + = LL* = L*L L* = L + {λ} (L*)* = L* (az iteráció idempotens) (L + ) + = L + (a + művelet idempotens) 16

Műveletek nyelvekkel Nyelvekre vonatkozó összefüggések (folyt.) (L*) + = (L + )* = L* L 1 = L 1 (a komplementerképzés involúciós tulajdonságú) Megjegyzések A műveletek asszociativitása miatt általában nem is szoktuk zárójelekkel jelezni a(z elméleti) sorrendjüket További zárójelek hagyhatók el az egyértelmű precedencia következtében, sorrend: az egyargumentumú műveletek (komplementer, Kleene-csillag és Kleene-plusz) precedenciája nagyobb, mint a kétargumentumúaké; a konkatenációé nagyobb, mint az unióé és metszeté Disztributivitási tulajdonságok is megfogalmazhatók Feladat: hagyjuk el a felesleges zárójeleket a következő kifejezésekből, ill. hozzuk egyszerűbb alakra a kifejezéseket (L 1 *) L 2 ((L 1 L 2 ) L 3 ) (L*L) (L L) ( L L) Feladat (önálló gyakorlásra) Szemléltessük a fenti összefüggéseket konkrét nyelv példákkal (fontosabb esetek)! 17 Műveletek nyelvekkel Egyszerű nyelvműveleti példák {ab} {cd} = {ab, cd} {a, bx}{c, d} = {ac, ad, bxc, bxd} {c, d}{a, bx} = {ca, da, cbx, dbx} {ab} 3 = {ababab} {ab} + = {ab, abab, ababab, } {ab}* = {λ, ab, abab, ababab, } Nyelvműveletek feladatok (D. P. 9 10.) Legyen V = {a, b, c}, L 1 = {a, c, bb, aba}, L 2 = {a, abba, baba, caba, abbaba, babaabba}. Adjuk meg az L 1 L 2, L 1 L 2, L 1 L 2, L 1 L 1 halmazokat. Adjunk példát olyan V ábécé feletti L 1 és L 2 nyelvekre, amelyekre L 1 L 2 = L 2 L 1. (Próbáljunk nem triviális megoldást is megadni.) Adottak L 1 és L 2 véges nyelvek V ábécé felett úgy, hogy L 1 = n és L 2 = m. Mennyi lehet a számossága az L 1 L 2, L 1 L 2 és L 1 L 2 nyelveknek? Adjunk meg alsó és felső korlátot, továbbá példákat is. Igazoljuk vagy cáfoljuk, hogy (L 1 L 2 )* = (L 1 )* (L 2 )* Segítség: az állítás hamis, például L 1 = {a}, L 2 = {b}-re látható Mivel egyenlő L 2, ha L = {a n b n n > 0} 18

Példa: Egy aritmetikai kifejezés szintaxisának megadása (Minden programozási nyelvben előfordul) Adott egy rögzített elemekből felépített kifejezés. Feladatunk eldönteni, hogy szintaktikusan helyes-e (nem ránézésre vagy megérzéssel, hanem algoritmussal). Ehhez formalizálni kell a rendszert! Milyen szimbólumok, számok, műveleti jelek szerepelhetnek a kifejezésben? Rögzítünk egy megfelelő halmazt (ebben az egyszerű példában): változók (A, B, C), konstansok (0, 1), műveleti jelek (+, ) és zárójelek Példa kifejezések: A + B C, AB ++ (C ) Milyen szabályok alapján épülhet fel a kifejezés a már rögzített szimbólumokból? Rekurzív definíció: a kifejezés állhat egy tagból, vagy lehet több tag összege; azaz a kifejezés lehet egy kifejezés és egy tag összege Nyilván definiálni kell majd a tagot is (és a többi részegységet is) Tömör és egyértelmű megfogalmazás kell! Formális leírás elemei kifejezés = kif., tag = tag, vagy művelet =, lehet = (vagy: ::=, Backus Naur jelölés) Kifejezés definíciója Így tehát kif. tag kif. + tag 19 Példa: Egy aritmetikai kifejezés szintaxisának megadása (folyt.) Tag definíciója Lehet egy tényezőből álló szorzat (faktor), vagy több tényező szorzata (szintén rekurzív definícióval) tag fakt. fakt. fakt. Faktor definíciója Lehet egy zárójelbe tett kifejezés, vagy változó, vagy konstans fakt. ( kif. ) vált. konst. A kifejezésből kaphatunk majd újra tagot Itt teljes zárójelezést használunk, ami esetleg egyébként elhagyható lenne, de ezt nem tudjuk könnyen formalizálni a prioritás kezelésére: lengyel-forma vagy valami hasonló eszköz kellene Változók és konstansok (ebben a példában) vált. A B C konst. 0 1 Azaz: aritmetikai kifejezésnek az A, B, és C változó jelekből, a 0 és 1 konstans jelekből, a + és műveleti jelekből a ( és ) csoportosító jelekből a kif. tag kif. + tag tag fakt. fakt. fakt. fakt. ( kif. ) vált. konst. vált. A B C konst. 0 1 szabályok alkalmazásával felépíthető jelsorozatokat (szavakat/mondatokat) nevezzük 20

Példa: Egy aritmetikai kifejezés szintaxisának megadása (folyt.) Hogyan építhető fel egy szó a fenti szabályok alkalmazásával? kif. -ből indulunk Egy jelsorozat (szó) esetén helyettesítsük a részegységek megnevezésére szolgáló szimbólumot az őt definiáló szintaktikai szabály jobb oldalának valamely lehetséges változatával (alternatíva) Helyettesítés (jelölés): A (B + 1) levezetése kif. tag fakt. fakt. fakt. ( kif. ) fakt. ( kif. + tag ) fakt. ( tag + tag ) fakt. ( fakt. + fakt. ) vált. ( fakt. + fakt. ) vált. ( vált. + konst. ) A ( vált. + konst. ) A (B + 1) Szintaktikailag hibás kifejezést nem tudunk így levezetni, például: + (B + 1), )B + 1( Ilyen következtetési mód: levezetés Persze a gyakorlatban bonyolultabb aritmetikai kifejezések jönnek elő (ez a példa nagyon egyszerű), de azok is ugyanilyen módon kezelhetők Szintaxis ezen megadási módja: generatív nyelvtannal való szintaxis megadás (Ez a leggyakoribb) 21 és generatív nyelvtanok (Eddigi tapasztalataink alapján ) Mit kell tartalmaznia egy generatív nyelvtan definíciójának? Azon szimbólumok (betűk) megadását, amelyekből a nyelvtannal definiálandó nyelv szavai állhatnak (terminális szimbólumok, nyelvi szimbólumok) Azon további szimbólumok megadását, amelyek nem szerepelnek (!) a nyelv szavaiban (mondataiban), de szükség van rájuk a szintaktikai szabályok megfogalmazásához (nemterminális szimbólumok, grammatikai szimbólumok) A szintaktikai (levezetési) szabályokat Azt a nemterminális szimbólumot (kezdő szimbólum), amelyből levezetés alkalmazásával a definiálandó nyelv valamennyi szavát megkapjuk A levezetés pontos definícióját Szokásos jelölés szimbólum = terminális szimbólum szimbólum = nemterminális szimbólum 22

Példa: Köznapi nyelv (leszűkített részhalmaz, minimagyar ) Szabályok mondat ::= alanyi rész állítmányi rész alanyi rész ::= főnévi rész határozó állítmányi rész ::= tárgyi rész igei rész főnévi rész ::= névelő jelzők főnév jelzők ::= jelző jelző jelzők tárgyi rész ::= főnévi rész t névelő ::= λ a az egy jelző ::= λ hideg meleg fehér fekete nagy kis főnév ::= kutya macska hús egér sajt tej víz határozó ::= λ nappal éjjel reggel este igei rész ::= eszik iszik Megjegyzések A szavak itt terminális szimbólumok (de most nem dőlten írtuk őket) A mondat végére írhatnánk pontot (de ekkor is gond lenne abból, hogy a nagybetűs kezdést nem tudnánk egyszerűen biztosítani Látható már most is, hogy nem tudunk minden valós nyelvtani szabályt alkalmazni (tárgyi rész: sajt, sajtot, víz, vizet, tej, tejet) 23 Példa: Minimagyar (folyt.) Levezetés példa mondat alanyi rész állítmányi rész főnévi rész határozó állítmányi rész névelő jelzők főnév határozó állítmányi rész a jelzők főnév határozó állítmányi rész a jelző jelzők főnév határozó állítmányi rész a nagy fehér főnév határozó állítmányi rész a nagy fehér kutya határozó állítmányi rész a nagy fehér kutya reggel állítmányi rész a nagy fehér kutya reggel tárgyi rész igei rész a nagy fehér kutya reggel főnévi rész t igei rész a nagy fehér kutya reggel névelő jelzők főnév t igei rész a nagy fehér kutya reggel jelző főnév t igei rész a nagy fehér kutya reggel meleg húst igei rész a nagy fehér kutya reggel meleg húst eszik Ez normális magyar mondat, de persze sok a mi szintaktikánk szerint helyes normális magyarul mégis szintaktikailag hibás mondatot is le tudunk így vezetni az fehér egér hideg sajtt eszik az kis fekete macska meleg tejt iszik Hasonlóan levezethető több, normális magyarul szemantikailag is támadható mondat a fehér tej macskat iszik És persze léteznek minimagyarul is szintaktikailag helytelen (levezethetetlen) mondatok hús kutya reggel fekete eszik víz az 24

Példa: Egy programozási nyelv szintaxisának megadása Szándékosan egyszerű programozási nyelvet választunk (PÉLDA) Kezdőszimbólum: program Szabályok program ut. lista. ut. lista ut. ut. ; ut. lista ut. ért. adó if ut. while ut. blokk ért. adó vált := kif. if ut. if reláció then ut. else ut. while ut. while reláció do ut. blokk begin ut. lista end reláció kif. relációjel kif. relációjel < > = kif. tag kif. + tag tag fakt. fakt. fakt. fakt. ( kif. ) vált. konst. vált. A B C konst. 0 1 Egy jelsorozat akkor és csak akkor szintaktikusan helyes PÉLDA nyelvű program, ha levezethető a program nemterminális szimbólumból a fenti szabályok alkalmazásával Feladat: Adjunk meg szintaktikusan helyes és helytelen PÉLDA nyelvű programot! 25 Egyszerű programok esetében (viszonylag) könnyű eldönteni, hogy szintaktikusan helyesek-e [A szintaktikusan helyesnek bizonyult kódokat utána még természetesen szemantikusan is elemezni kell! (Ezzel egyelőre nem foglalkozunk.) Időnként beépítenek bizonyos szemantikai ellenőrzést a szintaktikába, pl. szám és szám típusú szöveg összeadása, Excelben megengedett, C-ben/Java-ban nem Beadható feladat: Készítsünk szintaktikailag helyes, de szemantikailag helytelen kódot C- ben, Java-ban Ugyanakkor még a szemantikai helyesség sem garantálja feltétlenül az értelmes/céljainknak megfelelő működést] Probléma hosszú programoknál A levezetés során sok konfliktus adódik (több lehetőség a helyettesítésre, melyik a jó/melyiket válasszuk?) Intuitív módon: Az a cél, hogy közelebb kerüljünk a kívánt végeredményhez Algoritmikusan: Valami módon sorba rakjuk a szabályokat, ebben a sorrendben alkalmazzuk őket a helyettesítésnél Lehet, hogy rossz szabályt választottunk! (Backtrack technikákat is be kell vetni, ez viszont magával vonja a rekurzív működést és az exponenciális típusú kimenetelt ) Mennyi sikertelen levezetési kísérlet után lehet kimondani, hogy a program szintaktikusan helytelen? Ezekre a (nehéz) kérdésekre választ adnak az elemzési algoritmusok A jó elemzési algoritmus legfeljebb az input hosszának konstansszorosa számú lépést hajt végre, és utána megadja a választ Ez persze nehezen biztosítható 26

Ajánlott irodalom Fülöp Zoltán: és szintaktikus elemzésük, Polygon, Szeged, 2001 Dömösi Pál és társai: és automaták, Elektronikus jegyzet, 2011 Bach Iván:, Typotex kiadó, Budapest, 2002 Katona Gyula, Recski András, Szabó Csaba: A számítástudomány alapjai, Typotex Kiadó, Budapest, 2003 27