LR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera

Σχετικά έγγραφα
Ekvačná a kvantifikačná logika

Gramatická indukcia a jej využitie

Matematika Funkcia viac premenných, Parciálne derivácie

Obvod a obsah štvoruholníka

ARMA modely čast 2: moving average modely (MA)

1. písomná práca z matematiky Skupina A

Motivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010.

Start. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop

Prechod z 2D do 3D. Martin Florek 3. marca 2009

ARMA modely čast 2: moving average modely (MA)

Cvičenie č. 4,5 Limita funkcie

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy

Tomáš Madaras Prvočísla

Goniometrické rovnice a nerovnice. Základné goniometrické rovnice

Matematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad

Matematika 2. časť: Analytická geometria

7. FUNKCIE POJEM FUNKCIE

1. Limita, spojitost a diferenciálny počet funkcie jednej premennej

Automaty a formálne jazyky

Pevné ložiská. Voľné ložiská

Planárne a rovinné grafy

HASLIM112V, HASLIM123V, HASLIM136V HASLIM112Z, HASLIM123Z, HASLIM136Z HASLIM112S, HASLIM123S, HASLIM136S

Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Katedra Informatiky

Úvod do lineárnej algebry. Monika Molnárová Prednášky

Priamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava

6 Limita funkcie. 6.1 Myšlienka limity, interval bez bodu

M6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita

Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti rozvodu tepla

Gramatiky. Kapitola Úvod. 1.2 Návrh gramatík

Termodynamika. Doplnkové materiály k prednáškam z Fyziky I pre SjF Dušan PUDIŠ (2008)

Moderné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A

AerobTec Altis Micro

Život vedca krajší od vysnívaného... s prírodou na hladine α R-P-R

PRIEMER DROTU d = 0,4-6,3 mm

,Zohrievanie vody indukčným varičom bez pokrievky,

Ispitivanje toka i skiciranje grafika funkcija

u R Pasívne prvky R, L, C v obvode striedavého prúdu Činný odpor R Napätie zdroja sa rovná úbytku napätia na činnom odpore.

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy

Komplexné čísla, Diskrétna Fourierova transformácia 1

VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR. Michal Zajac. 3 T b 1 = T b 2 = = = 2b

VOJENSKÁ AKADÉMIA V LIPTOVSKOM MIKULÁŠI PREKLADAČE

Návrh vzduchotesnosti pre detaily napojení

MIDTERM (A) riešenia a bodovanie

Deliteľnosť a znaky deliteľnosti

REZISTORY. Rezistory (súčiastky) sú pasívne prvky. Používajú sa vo všetkých elektrických

Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus

C. Kontaktný fasádny zatepľovací systém

24. Základné spôsoby zobrazovania priestoru do roviny

Cieľom cvičenia je zvládnuť riešenie diferenciálnych rovníc pomocou Laplaceovej transformácie,

2 Chyby a neistoty merania, zápis výsledku merania

Vlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca)

Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich

Kompilátory Syntaxou riadený preklad. Ján Šturc Zima 2009

Definícia parciálna derivácia funkcie podľa premennej x. Definícia parciálna derivácia funkcie podľa premennej y. Ak existuje limita.

2. prednáška. Teória množín I. množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin

3. Striedavé prúdy. Sínusoida

UČEBNÉ TEXTY. Pracovný zošit č.2. Moderné vzdelávanie pre vedomostnú spoločnosť Elektrotechnické merania. Ing. Alžbeta Kršňáková

Funkcie - základné pojmy

Chí kvadrát test dobrej zhody. Metódy riešenia úloh z pravdepodobnosti a štatistiky

3. prednáška. Komplexné čísla

4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti

x x x2 n

Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín. Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť.

23. Zhodné zobrazenia

BANACHOVE A HILBERTOVE PRIESTORY

1-MAT-220 Algebra februára 2012

FUNKCIE N REÁLNYCH PREMENNÝCH

KATALÓG KRUHOVÉ POTRUBIE

Harmonizované technické špecifikácie Trieda GP - CS lv EN Pevnosť v tlaku 6 N/mm² EN Prídržnosť

7 Derivácia funkcie. 7.1 Motivácia k derivácii

Riešenie rovníc s aplikáciou na elektrické obvody

Derivácia funkcie. Pravidlá derivovania výrazov obsahujúcich operácie. Derivácie elementárnych funkcií

Vzorové príklady s riešeniami k lineárnej algebre a geometrie pre aplikovaných informatikov k písomke

CHÉMIA Ing. Iveta Bruončová

Úprava textu. Použitie schránky: Hlavička a Päta: Poznámka pod čiarou: Modul č.3 WORD pre pokročilých

Podnikateľ 90 Mobilný telefón Cena 95 % 50 % 25 %

Hydromechanika II. Viskózna kvapalina Povrchové napätie Kapilárne javy. Doplnkové materiály k prednáškam z Fyziky I pre EF Dušan PUDIŠ (2013)

Zložené funkcie a substitúcia

1 Prevod miestneho stredného slnečného času LMT 1 na iný miestny stredný slnečný čas LMT 2

ÚLOHA Č.8 ODCHÝLKY TVARU A POLOHY MERANIE PRIAMOSTI A KOLMOSTI

RIEŠENIE WHEATSONOVHO MOSTÍKA

XVIII. ročník BRKOS 2011/2012. Pomocný text. Kde by bola matematika bez čísel? Čísla predstavujú jednu z prvých abstrakcií, ktorú

Zrýchľovanie vesmíru. Zrýchľovanie vesmíru. o výprave na kraj vesmíru a čo tam astronómovia objavili

Motivácia pojmu derivácia

Riešenie cvičení z 5. kapitoly

Numerické metódy Učebný text pre bakalárske štúdium

Margita Vajsáblová. ρ priemetňa, s smer premietania. Súradnicová sústava (O, x, y, z ) (O a, x a, y a, z a )

ROZSAH ANALÝZ A POČETNOSŤ ODBEROV VZORIEK PITNEJ VODY

3. kapitola. Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou. priesvitka 1

1. Komplexné čísla. Doteraz ste pracovali s číslami, ktoré pochádzali z nasledovných množín:

Reálna funkcia reálnej premennej

Riadenie zásobníkov kvapaliny

Matematika 2. časť: Funkcia viac premenných Letný semester 2013/2014

Prirodzené čísla. Kardinálne čísla

Kompilátory. Cvičenie 6: LLVM. Peter Kostolányi. 21. novembra 2017

Príklady na precvičovanie Fourierove rady

Pravdivostná hodnota negácie výroku A je opačná ako pravdivostná hodnota výroku A.

Ján Buša Štefan Schrötter

MATEMATICKÁ OLYMPIÁDA

Transcript:

LR0) syntaktické analyzátory doc. RNDr. Ľubomír Dedera

Učebné otázky LR0) automat a jeho konštrukcia Konštrukcia tabuliek ACION a GOO LR0) syntaktického analyzátora

LR0) syntaktický analyzátor Sám osebe nemá veľký praktický význam Dá sa skonštruovať len pre veľmi obmedzenú triedu gramatík Dajú sa na ňom vysvetliť princípy používané aj u silnejších typoch LR syntaktických analyzátorov SLR1), LALR1), LR1)) Na rozhodnutie, akú akciu vykonať tabuľka ACION), sa nevyužíva aktuálny vstupný symbol, ale len stav na vrchu zásobníka tzn. história syntaktickej analýzy) Konštrukcia LR0) syntaktického analyzátora: 1. Konštrukcia LR0) automatu 2. Konštrukcia tabuliek ACION a GOO LR0) syntaktického analyzátora na základe vytvoreného LR0) automatu

LR0) automat Alternatívne pomenovania: CFSM Characteristic Finite State Machine), charakteristický automat syntaktického analyzátora Konštruuje sa k zadanej bezkontextovej gramatike G = N,, P, S), ku ktorej chceme zostrojiť LR0) príp. SLR1) alebo aj LALR1)) syntaktický analyzátor Jedná sa o automat, ktorý pomocou svojich stavov rozpoznáva časti pravých strán jednotlivých praviel gramatiky využíva sa na určovanie toho, aké časti ktorých praviel sa nachádzajú na vrchu zásobníka do zásobníka syntaktického analyzátora sa teda ukladajú stavy LR0) automatu pozri predchádzajúcu prednášku)

Stavy LR0) automatu Stavy LR0) automatu obsahujú množiny LR0) položiek LR0) položka je zápis tvaru A X 1... X i X i+1... X j, pričom A X 1... X i X i+1... X j P stav i S ) + ) LR0) položka je vlastne pravlo obsahujúce na niektorej pozícii na pravej strane symbol vyjadruje, aká časť pravej strany príslušného pravla bola príslušným stavom rozpoznaná a nachádza sa na vrchu zásobníka) Špeciálne: na začiatku pravej strany indikuje, že na vrchu zásobníka sa ešte nenachádza ani jeden symbol z pravej strany pravla napr. ) na konci pravej strany pravla indikuje, že na vrchu zásobníka sa nachádza celá pravá strana príslušného pravla, čím prichádza do úvahy redukcia podľa príslušného pravla napr. + ) Každý stav teda vyjadruje potenciálne časti pravých strán všetkých praviel, ktoré sa v danej chvíli môžu nachádzať na vrchu zásobníka

Uzáver množiny LR0) položiek Closure0) Cieľ prať do množiny LR0) položiek tzn. stavu) také položky, ktoré pôvodná množina implicitne obsahuje Nutné realizovať vždy, keď v niektorej položke v stave stojí pred neterminálom: Ak máme ako nasledujúci symbol v pravej strane pravla entifikovať nejaký neterminál A stojí bezprostredne pred neterminálom A), potom najprv musíme rozpoznať niektorú z pravých strán A-praviel, aby sme po následnej redukcii rozpoznali práve neterminál A. Keďže vopred nevieme, o ktorú pravú stranu zo všetkých pravých strán A-praviel pôjde, musíme do množiny položiek prať všetky položky tvaru A, kde reprezentuje pravé strany všetkých A- praviel. Položky je potrebné právať dovtedy, kým môžeme do množiny týmto spôsobom právať nové položky. Pozn. A-pravlo je pravlo s neterminálom A na jeho ľavej strane

Uzáver množiny LR0) položiek - príklad Uvažujme o gramatike s pravlami: 1. S $ 2. + 3. 4. 5. ) Chceme určiť Closure0{ ) }) stav i ) stojí pred neterminálom, musíme teda prať položky + a súčasne si položku ) označíme ako vyriešenú stav i ) + v ďalšej položke opäť stojí pred neterminálom, položky + už v stave máme, takže si len položku označíme ako vyriešenú stav i )

Uzáver množiny LR0) položiek príklad - pokračovanie Uvažujme o gramatike s pravlami: 1. S $ 2. + 3. 4. 5. ) Chceme určiť Closure0 ) ) stav i ) stav i ) stojí pred neterminálom, musíme teda prať položky ) a súčasne si položku označíme ako vyriešenú stav i ) ) keďže u zvyšných nevyriešených položiek stojí pred terminálom, uzáverová operácia je ukončená

Konštrukcia LR0) automatu V automate vytvoríme stav 0, ktorý bude obsahovať položky Closure0{S α$}), kde S je začiatočný symbol gramatiky a $ je posledný terminálny symbol v odvodení napr. koniec súboru) Aby sme mohli akceptovať, potrebujeme rozpoznať pravú stranu S-pravla; Na samotnom začiatku sme ešte z pravej strany S-pravla neentifikovali žiadny symbol, preto stojí na začiatku Uzáverová operácia viď. predch. text Uvažujme o gramatike s pravlami: 1. S $ 2. + 3. 4. 5. ) keďže stojí pred neterminálom, musíme zrealizovať uzáverovú operáciu: stav 0 S $ stav 0 S $

Určenie nasledovníkov stavu Ďalej je potrebné pre stav 0 určiť jeho nasledovníkov, tzn. stavy, do ktorých je možné prejsť na tie terminálne aj neterminálne) symboly, pred ktorými v pôvodnom stave stojí. ieto prechody sa uskutočnia vtedy, ak sa podarí príslušný symbol entifikovať. Nové stavy sa získajú uzáverovými operáciami nad množinami tých položiek pôvodného stavu, kde sa znak presunie za symbol, na ktorý sa prechod uskutočňuje. stav 0 S $ stav 1 S $ + stav 3 stav 2 stav 4 ) v stave 0 označuje, že stav 0 má určených všetkých nasledovníkov Do stavu 4 sa nám priamo dostala len položka ), ostatné pribudli uzáverovou operáciou

Konštrukcia LR0) automatupokračovanie Pokiaľ existuje nejaký stav bez nasledovníkov, budeme opakovať: Vyber stav bez nasledovníkov a urči jeho nasledovníkov Poznámka: Pri vytváraní nasledovníkov musíme sledovať, či už rovnaký stav LR0) automatu náhodou nemáme vytvorený; pokiaľ áno, použijeme už existujúci stav

Príklad Zostrojte LR0) automat ku gramatike s pravlami: 1. S $ 2. + 3. 4. 5. )

Príklad stav 0 S $ Poznámka: Automaticky sa do stavu 0 dostane len položka S $ ; to, že sú tam teraz všetky pravlá s na začiatku je len zhoda okolností!!!

Príklad stav 0 S $ stav 1 S $ + stav 3 stav 2 stav 4 ) uzáverová operácia Poznámka: Stavy 2 a 3 sme si označili hneď ako vyriešené z hľadiska nasledovníkov, pretože žiadnych nemajú

Príklad stav 0 S $ stav 1 S $ + $ + stav 3 stav 6 + stav 2 stav 4 ) stav 5 S $ uzáverová operácia

Príklad stav 0 S $ stav 1 S $ + $ stav 5 S $ + stav 3 stav 6 + stav 2 stav 4 ) stav 7 ) + stavy 2, 3, 4 boli použité opakovane

Príklad stav 0 S $ stav 1 S $ + $ stav 5 S $ + stav 3 stav 6 + stav 8 + stav 2 stav 4 ) stav 7 ) +

Príklad stav 0 S $ stav 1 S $ + $ stav 5 S $ + stav 3 stav 6 + stav 8 + + stav 2 stav 4 ) stav 7 ) + ) stav 9 )

Príklad výsledný automat stav 0 S $ stav 1 S $ + $ stav 5 S $ + stav 3 stav 6 + stav 8 + + stav 2 stav 4 ) stav 7 ) + ) stav 9 )

Konštrukcia tabuľky ACION LR0) syntaktického analyzátora ACION tu bude závisieť len od stavov LR0) automatu, nie od aktuálneho vstupného symbolu Konštruuje sa na základe LR0) automatu: položky s na konci pravla tzn. tvaru A α ) signalizujú redukciu podľa A α špeciálne položky S α $ signalizujú akceptáciu položky tvaru A α tβ, t signalizujú presun

Konflikty Ak LR0) automat obsahuje nejaký stav, v ktorom sa nachádzajú: Dve rôzne LR0) položky s na konci, potom nevieme, podľa ktorého pravla sa má redukcia uskutočniť; e o tzv. konflikt typu redukcia-redukcia; LR0) položky s na konci aj vo vnútri príp. začiatku) pravla, potom nevieme, či v danej situácii sa má vykonať redukcia alebo presun; e o tzv. konflikt presun-redukcia. Ak žiaden stav LR0) automatu neobsahuje konflikt, potom gramatika, ku ktorej bol LR0) automat zostrojený, sa nazýva LR0) gramatika.

abuľka ACION - príklad 1. S $ 2. + 3. 4. 5. ) Žiaden stav automatu neobsahuje konflikt, gramatika je preto LR0) gramatika abuľka ACION: Stav/ Akcia stav 0 S $ stav 1 S $ + $ stav 5 S $ + stav 3 stav 6 + stav 8 + 0 1 2 3 4 5 6 7 8 9 P P R3 R4 P A P P R2 R5 + stav 2 stav 4 ) stav 7 ) + ) stav 9 )

abuľka GOO Zostrojí sa taktiež priamo na základe LR0) automatu: Ak existuje orientovaná hrana zo stavu i do stavu j na symbol X, X N ), potom GOO[i][X] = j

abuľka GOO: stav 0 S $ stav 1 S $ + $ stav 5 S $ + stav 3 stav 6 + stav 8 + Stav/Symbol 0 1 2 3 4 5 6 7 8 9 + stav 2 stav 4 ) stav 7 ) + ) stav 9 ) S 1 7 2 2 8 $ 5 + 6 6 3 3 3 4 4 4 ) 9

Otázky