Kap. 5 del 2 – SLR(1), LR(1) og LALR(1) – grammatikker INF5110 – v2005 Arne Maus, Ifi UiO.

Slides:



Advertisements
Liknende presentasjoner
GoOnline XP publisering Hvordan komme i gang med GoOnline XP. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline.
Advertisements

15 Notater og markeringer i teksten
utnytte ledg rom/medløpspasning
GoOnline publisering Hvordan komme i gang med GoOnline. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline Proffesional.
En innføring i spillet: Lag En Setning
Veiledning i gevinstrealisering ved innføring av elektronisk handel
Gjenfinningssystemer og verktøy II
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Stilistikk 4 En setning En ytring.
Hva trenger jeg av data, og hvordan skal jeg innhente disse?
Blooms taksonomi for kunnskap
Den store ID-quizen Hvem er du? - Ta testen nå!.
Janne Bondi Johannessen Tekstlaboratoriet Universitetet i Oslo
Oppgave 42 Finn feilene i setningene, og gi forslag til riktige setninger. Her finnes det selvsagt mange muligheter og ikke én fasit.
René Descartes (1596–1650) Innførte koordinatsystemet
Vi har lært å bestemme: - Nullpunkter (y=0)
Å overleve oppgaveskriving: Litteraturgjennomgang
Et formelt språk er en mengde av strenger over et endelig alfabet
VELKOMMEN TIL URO OPPLÆRING
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Kompleksitetsanalyse
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
Komplekse tall Naturlige tall
Randomisering av deltakere i eksperiment
Mandag 8. November Powerpoint..
IT for Medisinsk sekretær Kai Hagali KVELD 4.  Siste rest kapittel 3  Kapittel 4  OPPGAVER  Neste gang Fletting Kai Hagali - Fredrikstad.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
12 Reflekterende lesing.
Publisering på verdensveven Kursdag 2 VÅFF, våren 2002.
Publisering på verdensveven Kursdag 3 VÅFF, våren 2002.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Onsdag 13. mars Sam Eyde vgs
NÅ SKAL VI LÆRE OM LIKNINGER.
GØY MED GRAMMATIKK: KURS FOR LÆRERE
Oppgave 1. Automaten aksepterer språket over alfabetet {a,b} bestående av strenger med et like antall forekomster av a og et like antall forekomster av.
INF 4130 Eksamen 2008 Gjennomgang.
ADVERB Han går inn. hvor=sted Tor skriver pent. hvordan=måte
Chart parsing Parsemetode som baserer seg på avledning av kanter. En kant består av en delstreng og en “dotted rule” VP  TV NP VP They see her report.
1.1 /// Klikk her for å høre Magnus 1.2 /// Klikk her for å høre Thea 1.2.
SINTEF-undersøkelsen om salting og trafikksikkerhet
Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
Foreldreskolen del 1 Norskfaget.
Høyrelineær grammatikk A  Λ A  cA A  caa S  A S  abS S  baS dvs. en kontekstfri grammatikk der hver produksjon - har høyst en ikketerminal på høyresiden,
En repetisjon hrj – høst 2010
Eksamen 2005, oppgave 2 Eksamen 2006, oppgave 2 Stein Krogdahl INF5110 – V2007.
Termbaser Lars Nygaard. Termbaser Database over begreper Innhold –Definisjoner –Oversettelser –Leksikalske relasjoner –Eksempler.
1 INF5110 – 23. april, 2013 Noen oppgaver til kap. 8 Dette er en bedre utgave av oppgavene, lagt ut 24. april Nå fredag (26/4): Det blir ikke undervisning.
Kontekstfri grammatikk Endelig mengde T av terminal(symbol)er Endelig mengde V av ikke-terminal(symbol)er Startsymbol S Endelig mengde P av produksjoner.
Deterministisk endelig automat (DFA) (over språk A) Består av - en ikke-tom mengde Q av tilstander - hvor nøyaktig en er utpekt som start-tilstand - og.
Trekkstrukturer Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,… Defineres som en DAG (directed acyclic graph), det vil si en.
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
Intro til (x)html Del 1. HUMIT1731 uke35b Kåre A. Andersen 2 En mal … Dette er en mal for DTD XHTML 1.0 Transitional Her kommer.
HUMIT1731 Hypermedier Introduksjon til XSL Transformation (XSLT)
Sannsynlighet og kombinatorikk
UFLP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Matematikk 1 årskurs 26. oktober 2009
Sannsynlighet og kombinatorikk
Måling, areal og volum.
§4. Irrasjonale og komplekse tall
Kap. 9 – Computer Intelligence How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen,
Naturvitenskapen Foto: Getty images/Thinkstock. Naturvitenskap i dagliglivet Diskuter: Er kunnskap om naturvitenskap viktig for Helse? Forbruk og produksjon?
Brøk Regneartene.
TDT4105 Informasjonsteknologi, grunnkurs
LES SMARTERE Oversikt Lesemål Les aktivt Oppsummer Repeter
LES SMARTERE Oversikt Lesemål Les aktivt Oppsummer Repeter
INF5110 – 5. og 7. mai 2015 Stein Krogdahl, Ifi, UiO
Yet Another Compiler Compiler
Utskrift av presentasjonen:

Kap. 5 del 2 – SLR(1), LR(1) og LALR(1) – grammatikker INF5110 – v2005 Arne Maus, Ifi UiO

”Bottom up” parsering (nedenfra-og-opp) S A t 1 t 2 t 3 t 7 t 4 t 5 t 6 B B A LR-parsering og grammatikker - LR(0) - SLR(1) - LR(1) - LALR(1) -Autimatisert -YACC, Bison ( LALR(1) )

SLR(k) – mulig å lage teori for den, men lite praktisk å få ut av det

Viktig eksempel – om å løse konflikter (presedens og assosiativitet) r(E  E+.E) r(E  E*E.) r(E  E+E.) r(E  E*.E)

Grammatikk som ikke er SLR(1) Denne viser det seg vi kan løse ved å være nøyere med etterfølgermengder i LR(0)-DFA’en under konstruksjon) S id V Follow(S) = { $} Follow(V) = { :=, $} Har reduser/reduser – konflikt for input = $

Generelt om LR(1) - parsering Hovedidé: Vil holde greie på under oppsett av NFA og DFA hva som kan stå bak en produksjon i den sammenhengen den står NFA:[A . X , a] X [A  X. , a] Vi flytter oss ett hakk framover i høyresiden, men produksjonen forblir i samme sammenheng NFA: [A . B , a]  [A . , b] Spesialtilfelle (  =  ): [A . B , a]  [A . , a] LR(1) – itemene: [A . X , a] Angir at a kan komme etter A  i denne aktuelle sammenhengen (Altså ikke bak punktumet, med mindre  =  ) For alle: B  1 |  2 |.. og alle b  First(  a) For alle B  1 |  2 |.. a, b = look-ahead

Oppsett av LR(1) – DFA (uten å gå veien om LR(1) – NFA !) Starttilstanden er tillukningen av itemet [A’ . A, $] Grammatikk: A’  A A  (A) A  a A’  A. opptrer bare med look-ahead $ (angir aksept) To tilstander i LR(1)- DFA’en regnes som like bare om de har nøyaktig den samme mengde av LR(1) – itemer (medregnet look- ahead symbolene) se tilstand 2 og 5

Bokas definisjon av LR(1) – parsering. (samme svakheter som for LR(0) og SLR(1)

Er grammatikken LR(1) Metode som før: Sett opp parseringstabell, og sjekk at den er entydig. LR(1) – kravet kan formuleres som: Test for hver aktuelle X

LR(1) – tabell for: Entydig parseringstabell – defor LR(1)

LR(1) –DFA for problem-grammatikken som ikke var SLR(1) Her var dert konflikt ved SLR(1), siden Follow(V) = { :=, $}. LR(1) betraktning viser imidlertid at i denne tilstanden (sammenhengen) kan V bare følges av { :=}, og da har vi ikke problemer. Her er situasjonen hvor V kan følges av $, men her er det ikke problematisk. Grammatikken er altså LR(1)

Overgang fra LR(1) til LALR(1) ”Core” (kjerne) av en LR(1)-tilstand: Mengden av LR(0) –itemer, når man ser bort fra ”look- ahead” itemene. Merk at vi kan ha både [A . , a] og [A . , b]. Dette gir bare ett item i kjernen : A .  Observasjoner: Kjernen i alle LR(1) – tilstander er en LR(0) – tilstand To LR(1)-tilstander med samme kjerne har samme kanter ut, og tilvarende ut-kanter fører til tilsander med samme kjerne. Disse er LALR(1) - DFA’en

Sammenligning av LR(1) og LALR(1) - DFA’er LALR(1) LR(1)

Kan lage LALR(1)- DFA’en direkte Lag LR(0)-DFA’en (sett av plass til ”look-ahead” – symboler. Sett inn lookahead $ på [A’ .A, ] Fyll på med det som ”må med” av lookahead’er i en kompletteringsprosess, til det stopper Grammatikken er LALR(1) dersom dette gir en entydig parserings-tabell. Det blir det jo (selvfølgelig) her fordi grammatikken er jo LR(0) !

Oppgave 5.4

Oppgave 5.4 (a)

Oppgave 5.4 (a og b)

Oppgave 5.4 -c

Oppgave 5.4 -d

5.4 - e

Yacc-produsert parseringstabell (merk påfyll av ekstra reduksjoner)

Panic-mode for LR-parsering.

Panic-mode for LR-parsering kan gå i evig løkke

Oppsummering for bottom-up Vi formulerer vår grammatikk som basal BNF Konflikter kan løses med: omdefinere BNF’en (prøver kanskje det først) eller ved direktiver til Yacc eller løser det senere i semantisk analyse N.B. Ikke alle konflikter kan løses av selv LR(1) – skriv om! (eks: A  a | aAa) Vi har ulike muligheter for å betrakte/parsere vår BNF: fordelulempe LR(0)Definerer DFA-tilstander som brukes av SLR og LALR Mange (unødige) konflikter red/red og red/skift oppstår SLR(1)Klar forbedring av LR(0)Få/ingen, men ikke så god som LALR LR(1)Mest nøyaktig (færrest) konflikter. Best feilhåndtering. Svært mange tilstander (tabell på opp til 1 M felter for et ordentlig språk) LALR(1)Nesten like bra som LR(1) Dårligere feilhåndtering (for mange reduksjoner før feil oppfattes)