Oppgaver til INF 5110, kapittel 5

Like dokumenter
Oppgaver til INF 5110, kapittel 5 Fullt svar på oppgave 5.4, og en del andre oppgaver med svar

Oppgaver til INF 5110, kapittel 5, med svarforslag Gjennomgått torsdag 26. febr Dette er versjon fra 28/7

Med rettelser til oppgave 5.18, gjort 3/3

Kap. 5, Del 3: INF5110, fra 1/3-2011

Kap. 5, del 2 LR(1)- og LALR(1)-grammatikker INF5110 V2008

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

INF /2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005. Stein Krogdahl, Ifi, UiO

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF /2-2011

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009

Kap. 5, Del 2: INF / (og 2/3 og 3/3)

Oppgave 2. INF5110 oppgave 2 på eksamen v04 med teori. FirstMengder. Arne Maus Ifi. Eks. 4.9 Beregning av First-mengde. terminal

Kap. 5: Oppgaver m.m. (Noen lysark fra tidligere er gjentatt her) Stein Krogdahl, Ifi, UiO 8. Mars 2007

Bottom up parsering (nedenfra-og-opp) Kap. 5 del 1 Intro til parsering nedenfra-og-opp samt LR(0) og SLR(1) grammatikker INF5110 v2006

Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110. Stein Krogdahl Ifi, UiO

INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) 21/ Stein Krogdahl Ifi, UiO. Angående Oblig 1:

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO

UNIVERSITETET I OSLO

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgås tirsdag 21. febr. 2012

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) 16/ Stein Krogdahl Ifi, UiO

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgått torsdag 14. febr Disse foilene er justert 15/2, kl. 11

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

MED SVARFORSLAG UNIVERSITETET I OSLO

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

Med Svarforslag UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. 3 sider (side 6, 7 og 8, rives ut, fylles ut og leveres)

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden

UNIVERSITETET I OSLO

Hvor er vi nå - kap. 3 (+4,5)? Forenklet skisse av hva en parser gjør PARSER. Kontekstfrie grammatikker og syntaksanalyse (parsering)

INF3110 Programmeringsspråk

UNIVERSITETET I OSLO

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.

Stoff som i boka står i kap 4, men som er. 10. Februar Ifi, UiO

Stoff som i boka står i kap 4, men som er

INF5110, 15/ Dagens temaer: Avslutning kap. 4 Begynne på kap. 5 Se på oppgave. Stein Krogdahl, Ifi UiO

INF januar Forelesninger fremover:

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden

INF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down)

INF 5110, 3. februar Dette foilheftet: Kapittel 3

Kontekstfrie grammatikker og syntaksanalyse (parsering)

Dagens Tema: Grammatikker

Kap. 4, del I: Top Down Parsering Pluss oppgave til kapittel 3 INF5110 V2008

Kap. 4: Ovenfra-ned (top-down) parsering

Kontekstfrie grammatikker og syntaksanalyse (parsering)

MED SVARFORSLAG UNIVERSITETET I OSLO

Dagens Tema: Grammatikker

Følger Sipsers bok tett både i stoff og oppgaver.

Hjemmeeksamen 1 i INF3110/4110

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden

Kap.4 del 2 Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

UNIVERSITETET I OSLO

MED SVARFORSLAG UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk

TMA4140 Diskret Matematikk Høst 2016

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppgave 2. Eksamen INF2820, 2015, oppgave 2. La gramatikk G være:

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)

UNIVERSITETET I OSLO

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

INF2820 Datalingvistikk V2014. Jan Tore Lønning

Hovedstoffet i kap 4: 16. Februar Ifi, UiO

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

Kontekstfrie grammatikker og syntaksanalyse (parsering)

INF2080 Logikk og beregninger

INF2820 V2017 Oppgavesett 6 Gruppe 7.3

Oppgave 1 Vi har gitt følgende grammatikk for noe vi kan kalle speilengelsk :

Skanning del I INF /01/15 1

2/22/2011. Høyre- og venstreavledninger. I dag. Chomsky-normalform (CNF) Chomsky-normalform (CNF) PARSING. Jan Tore Lønning & Stephan Oepen

IN2080. Oppgave 1. Oppgave 2. Eksamen. Vår Den nondeterministiske endelige automaten A er gitt ved (Q, Σ, δ, q 0, F ) der

Skanning del I. Kapittel 2 INF 3110/ INF

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

UNIVERSITETET I OSLO

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

INF5830, H2009, Obigatorisk innlevering 2. 1 Oppgave: Unære produksjoner i CKY

Syntaksanalyse. Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger. IN 211 Programmeringsspråk

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

INF5110, tirsdag 5. februar, Dagens temaer: - Oppgaver til kap. 3 Svar ligger på slutten av foilene, men forsøk deg først selv!!

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

Dagens tema: Regulære språk og uttrykk

Hovedstoffet i kap 4:

UNIVERSITETET I OSLO

Obligatorisk oppgave 1 INF Kompilatorteknikk Våren 2012 Frist mandag 19. mars

INF-5110 Oppgaver kodegenerering etc. INF-5110, vår 2011

Svarforslag til ukeoppgaver til INF 4130

Løsningsforslag til obligatorisk oppgave 3 INF1800 Logikk og beregnbarhet, høsten 2009

Slides til 12.1 Formelt språk og formell grammatikk

Syntax/semantics - I INF 3110/ /29/2005 1

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Transkript:

Oppgaver til INF 5110, kapittel 5 Fra boka: 5.3 Vi har sett litt på denne på en forelesning 5.11 Vi har tidligere sett på: -> ) a 5.18 Forsøk også sette alternativet -> til slutt Utvid grammatikken på den foilen i Kap 5, del 2) som ser på den flertydige grammatikken: E -> E E -> E + E E * E n med høyreassosiativ opphøying slik: E -> E E -> E + E E * E E ** E n og avgjør hvordan konfliktene da skal løses. Oppgave 2 fra Eksamen 2006 se neste side). Kanskje også titte på eksamen 2007, opg 1 a, b og c. Se på slutten av undervisningsplanen for 2008. Svarforslag ligger på: www.uio.no/studier/emner/matnat/ifi/inf5110/v08/undervisningsmateriale/inf5110-eksamen2007+svar.pdf

Eksamen 2006, oppgave 2 minus ett punkt) Betrakt følgende grammatikk G, hvor S og T er ikketerminal-symboler, # og a er terminalsymboler, og S er startsymbolet. S T S S T T # T T a a) Finn First og Follow-mengdene til T og S og la $ betegne end-of-file som i boka). b) Formulér med dine egne ord hvilke sekvenser av terminalsymboler du kan lage ut fra S. c) vgjør om du kan lage et regulært uttrykk som uttrykker disse sekvensene av # og a som du kan utlede fra S, og hvis svaret er ja, gi et slikt regulært uttrykk. d) Innfør et nytt start-symbol S S og lag LR0)-DF-en for G rett fra denne grammatikken. Nummerér tilstandene. f) Lag parseringstabellen for G ut fra den typen grammatikk den er. g) Vis hvordan setningen: a#a vil bli parsert ved å skrive opp, som i boka, stakkinnholdet og input for hver av skift- eller reduser-operasjon

Fra boka: Oppgave 5.3 Kommentar: Denne er, i motsetning til den med S-> S)S, ikke LL1) se kommentar i forbindelse med en av oppgavene til kap 4) Den er ikke LR0) på grunn av tilst. 1. Merk at tilst. 0 og 2 ikke er problematiske siden det ikke er lovlig å skifte for noe terminalsymbol. Redusering er altså eneste mulighet Den er SLR1) fordi i tilstand 1 er reds -> S) bare aktuelt for $, mens skift bare er aktuelt for. Man kan også ekvivalent si at den er SLR1) fordi tabellen ble entydig. SLR1)-tabell

Oppgave 5.3, fortsatt $0 ) ) ) $ $0 S 1 ) ) ) $ $0 S 1 2 ) ) ) $ $0 S 1 2 S 3 ) ) ) $ To røde streker under betyr at $0 S 1 2 S 3 2 ) ) ) $ reduksjone med S -> ε er utført. $0 S 1 2 S 3 2 S 3 ) ) ) $ En strek under betyr at det skal $0 S 1 2 S 3 2 S 3 ) 4 ) ) $ reduseres med det understrekede, $0 S 1 2 S 3 ) ) $ mens piler betyr skift. $0 S 1 2 S 3 2 ) ) $ $0 S 1 2 S 3 2 S 3 ) ) $ $0 S 1 2 S 3 2 S 3 ) 4 ) $ $0 S 1 2 S 3 ) $ $0 S 1 2 S 3 ) 4 $ $0 S 1 $ accept!

a a a ε a a a 5.11 a og b se liknende eksempel på neste foiler) First) = { a, ε } Follow) = { a, $ } Merk at det her er snakk om LR1)- grammatikker, som ikke er pensum i 2013. Vi kan bare ta vekk lookahead -symbolene etter komma, og se på det som et SLR-problem. For både tilstand 2 og 4 gjelder at på input a så foreslås det både å skifte og å redusere med ε. ltså er grammatikken ikke LR1). b) Grammatikken genererer alle strenger med et partall antall a -er, og den er entydig siden den bare kan gjøre dette på en måte se figur). Ekstra: Med denne grammatikken må vi imidlertid lese helt til slutten av setningen for å finne når vi skal gå over fra å skifte til å redusere. Det skal skje på midten. Vi kan dermed se at grammatikken ikke er LRk) for noen k. ndre grammatikker som gir de samme setninger, og som helt kurant er SLR1) er: a a ε eller: a a ε

Fra en tidligere foil med en liknende grammatikk Er eksempel-grammatikkene i Kap 5 LR0)? Ser på grammatikken: -> ) a Her midtpunktet markert ved en a, og da er den plutselig LR0)!! Den første gir følgende LR0) DF: Tilst. Mulig aksjoner: 0 Bare skift mulig, for og a 1 Bare red. mulig, med 2 Bare red. mulig, med a 3 Bare skift mulig, for og a 4 Bare skift mulig, for ) 5 Bare red. mulig, med ) ltså: Entydig bestemt aksjon for alle tilstander betyr: Grammatikken er LR0) MERK: Der det er reduksjon må det ikke være tvil om med hvilken reduksjon! 6

Og vi fikk altså en entydig LR0)-tabell: NB: Den er litt annerledes enn for SLR1), LLR1), LR1), som alle er like Hvis en reduksjon bringer oss tilbake til tilstand 0 eller 3, sier Goto hvilken tilstand gir. Parsering av setningen: a)) a ) ) Skal her redusere med, og input tom: Ferdig

Oppgave 5.18 Vi ser på grammatikken: -> ) ε Denne grammatikken genererer samme språk som de velkjente: S -> S ) S ε og S -> S S ) ε Nemlig: lle korrekte parentesstrukturer. Men den nye er opplagt flertydig! Vis det. Svar: Her er to forskjellige trær for strengen: ) ) ε ε ) ε ε

0 2 ->. ->. ->. ) ->. ->. ) ->. ->. ) ->. Oppgave 5.18, side 2 Her kan man skifte for eller ) Velger alltid det heller enn å redusere 1 ->. ->. ->. ->. ) ->. 3 ->. ) ->. ->. ->. ) ->. ->. ->. ->. ->. ) ->. -> ). Cup/Yacc velger altså å redusere bare om lesing ikke er mulig, og om den må redusere velger den det alternativet som ligger først i grammatikken. Derfor: Om vi hadde byttet om prod. 1) og 3) ville Yacc/Cup altså valgt å redusere med -> ε også for ) og $ i tilstand 5. Men, da ville automaten hvertfall ikke virke siden den aldri ville redusere med -> og det må den jo av og til gjøre). ) 5 4 Red./red.-konflikt. YCC og CUP?) velger den som står først, altså prod. 1) Vi ser på grammatikken: 1) -> 2) -> ) 3) -> ε Follow) = {, ), $ } ) $ 0 s2 r3) 1 1 s2 acc. 5 2 s2 r3) r3) 3 3 s2 s4 5 4 r2) r2) r2) 5 s2 r1) r1) 5

Oppgave 5.18, side 3: Vil denne LR-tabellen godkjenne alle setninger i språket?? 0 2 ->. ->. ->. ) ->. ->. ) ->. ->. ) ->. Vi så jo på forrige foil nederst til venstre) at uheldige valg ødela automaten! 1 ->. ->. ->. ->. ) ->. ->. ) ->. ->. ->. ) ->. Men: Vil denne tabellen med lure valg) godkjenne akkurat de samme setningen som den gitte flertydige grammatikken? Vi har ingen metode for å avgjøre dette, og må i stedet se på eksempler. Se neste side. 3 ) 5 ->. ->. ->. ->. ) ->. 4 -> ). Vi ser på grammatikken: 1) -> 2) -> ) 3) -> ε Follow) = {, ), $ } ) $ 0 s2 r3) 1 1 s2 acc. 5 2 s2 r3) r3) 3 3 s2 s4 5 4 r2) r2) r2) 5 s2 r1) r1) 5

0 2 ->. ->. ->. ) ->. ->. ) ->. ->. ) ->. Oppgave 5.18, side 4: Vil denne LR-tabellen godkjenne alle setninger i språket?? 1 5 ->. ->. ->. ->. ) ->. 3 ->. ) ->. ->. ->. ) ->. ->. ->. ->. ->. ) ->. -> ). $ 0 ) ) $ $ 0 2 ) ) $ $ 0 2 3 ) ) $ $ 0 2 3 ) 4 ) $ $ 0 1 ) $ $ 0 1 2 ) $ $ 0 1 2 3 ) $ $ 0 1 2 3 ) 4 $ $ 0 1 5 $ $ 0 1 $ ) Det ser i hvert fall lovende ut mht. å klare alle setninger! 4 Vi ser på grammatikken: 1) -> 2) -> ) 3) -> ε Follow) = {, ), $ } ) $ 0 s2 r3) 1 1 s2 acc. 5 2 s2 r3) r3) 3 3 s2 s4 5 4 r2) r2) r2) 5 s2 r1) r1) 5

Gammel foil: Innfør her ** høyeste presedens, og høyreassossitiv) Fordel ved flertydige grammatikker: De er som regel enklere å sette opp, se f.eks. til venstre her, og tidligere grammatikker for ifsetningen Konflikter må oppstå, men: man kan løse mange konflikter med å angi presedens, assosiativitet, m.m. Dette kan angis f.eks. i CUP og Yacc Tilstand 5: Stakk= E+E Input= $: reduser, fordi skift ikke lovlig for $ +: reduser, fordi + er venstreassosiativ *: skift, fordi * har presedens over + Tilstand 6: Stakk= E*E Input= $: reduser, fordi skift ikke lovlig for $ +: reduser, fordi * har presedens over + *: reduser, fordi * er venstreassossiativ) Hva om også **? høyreass.). Blir oppgave! re E+E) re E*E) s4 re E*E) re E+E) re E*E)

Innføring av høyre-assosiativ ** med høyeste presedens Her måtte det bli konflikter, siden grammatikken er flertydig, og konfliktene opptrer i tilstandene 6, 7 og 8. Ut fra presedens og assosiativitet løser vi dette slik: + * ** Tilstand 6 E+E øverst på stakken) + red E-> E+E) venstre-ass.) * skift 3 ** skift 4 Tilstand 7 E*E øverst på stakken) + rede -> E*E) * rede -> E*E) venstr-ass.) ** skift 4 Tilstand 8 E**E øverst på stakken) + rede -> E**E) * rede -> E**E) ** skift 4 høyre-ass.) NB: Dette skjer altså automatisk i CUP når man har oppgitt presedens og assosiativitet riktig.

Eksamen 2006, oppgave 2 se undervisningsplanen 2008). Betrakt følgende grammatikk G, hvor S og T er ikke-terminaler, # og a er terminalsymboler, og S er startsymbolet. S T S S T T # T T a a) Finn First og Follow-mengdene til T og S og la $ betegne end-of-file som i boka). b) Formulér med dine egne ord hvilke sekvenser av terminalsymboler du kan lage ut fra S. c) vgjør om du kan lage et regulært uttrykk som uttrykker disse sekvensene av # og a som du kan utlede fra S, og hvis svaret er ja, gi et slikt regulært uttrykk. d) Innfør et nytt start-symbol S S og lag LR0)-DF-en for G rett fra denne grammatikken. Nummerér tilstandene. e) Lag parseringstabellen for G ut fra den type grammatikk den er. f) Vis hvordan setningen: a#a vil bli parsert ved å skrive opp, som i boka, stakk-innholdet og input for hver av skift- eller reduser-operasjon

Eksamen 2006, del 2 2a S T S S T T # T Gjør at FiT) skal inneholde # T a Gjør at FiT) skal inneholde a Gjør at FiS) skal ha alle fra FiT), og at FoT) skal ha alle fra FiS) Gjør, som over, at FiS) skal ha alle fra FiT), og at FoT) skal ha alle fra FoS) First Follow S a # $ T a # a # $ 2b 2c Vi kan fra S generere en-eller-flere a -er hvor hver a har null eller flere # foran seg. Vi har flg. regulære uttrykk { {#}* a}+

Eksamen 2006 del 2, oppgave d 2d LR0)-DF en blir som følger: S T S S T T # T T a

Eksamen 2006 del 2, oppgave 2 e 2e a # $ S T -------------------------------------------------------------------- 0 s5 S3 1 2 ------------------------------------------------------------------------------- 1 accept ------------------------------------------------------------------------------- 2 s5 s3 rs->t) 4 2 ------------------------------------------------------------------------------- 3 s5 s3 6 -------------------------------------------------------------------------------- 4 rt->ts) -------------------------------------------------------------------------------- 5 r T->a) rt->a) rt->a) ------------------------------------------------------------------------------- 6 r T->#T) rt->#t) rt->#t) ------------------------------------------------------------------------------- Merk at i tilstand 2 har vi både skift og reduksjon, valgt ut fra look-ahead-symbolet) First Follow S a # $ T a # a # $

Eksamen 2006 del 2, oppgave 2f 2f a # $ S T ------------------------------------------------------------------------ 0 s5 S3 1 2 1 accept 2 s5 s3 rs->t) 4 2 3 s5 s3 6 4 rt->ts) 5 r T->a) rt->a) rt->a) 6 r T->#T) rt->#t) rt->#t) ---------------------------------------------------------------------------------- nalyse av a # a : ---------------------------------- $ 0 a # a $ $ 0 a 5 # a $ $ 0 T 2 # a $ $ 0 T 2 # 3 a $ $ 0 T 2 # 3 a 5 $ $0 T 2 # 3 T 6 $ $0 T 2 T 2 $ $ 0 T 2 S 4 $ $ 0 S 1 $ accept --------------------------------------