Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Eksamen 2005, oppgave 2 Eksamen 2006, oppgave 2 Stein Krogdahl INF5110 – V2007.

Liknende presentasjoner


Presentasjon om: "Eksamen 2005, oppgave 2 Eksamen 2006, oppgave 2 Stein Krogdahl INF5110 – V2007."— Utskrift av presentasjonen:

1 Eksamen 2005, oppgave 2 Eksamen 2006, oppgave 2 Stein Krogdahl INF5110 – V2007

2 Betrakt følgende grammatikk G1: E → S E | num S → - S | + S | ε hvor E og S er ikke-terminalsymboler, E er startsymbol og: +, -, num er terminalsymboler (med vanlig tolkning). Oppgave 2a: Beskriv kort hvordan setninger som G1 kan produsere ser ut, og gi ett eksempel på en setning med 4 terminalsymboler. Svar: Setningene som produseres et tall med et vilkårlig antall fortegn (+ eller -) foran, f.eks: +--5 Oppgave 2b: Gi et regulært uttrykk som lager de samme setningene som G1. Svar: (+|-)* num Oppgave 2a og 2b, 2005

3 Oppgave: Gi et kort argument som bestemmer hvike(n) av følgende fem grupper G1 hører med i: 1. LR(0) 2. SLR(1) 3. LALR(1) 4. LR(1) 5. Ingen av de overstående. Hint: Finn ut om G1 er entydig. Svar: Grammatikken G1 er tvetydig og dermed er alternativ 5 riktig. At G1 er tvetydig, kan vises f.eks. ved at setningen ”– 9” kan produseres på to måter: Oppgave 2c, 2005 E → S E | num S → - S | + S | ε

4 Vi skal nå se på en annen grammatikk G2: F → + F | - F | num Oppgave: Du skal nå lage LR(0)-DFA-en for G2 rett fra denne grammatikken hvor du har utvidet grammatikken med en ny produksjon F’ → F (og hvor F’ nå er startsymbolet). Nummerér hver av tilstandene. Svar: Ikke spurt etter : First {F} = {-, +, num} Follow {F} = {$} Oppgave 2d, 2005

5 F → + F | - F | num Oppgave: Ut fra det svaret på d), angi med en kort begrunnelse hvilke(n) type grammatikk G2 er (jfr. spørsmål 2c ovenfor). Svar: Vi har ingen konflikter (shift/shift eller shift/reduce) i LR(0)- DFA’en og grammatikken er følgelig LR(0). Oppgave 2e, 2005 First {F} = {-, +, num} Follow {F} = {$} (men vi får ikke bruk for dette)

6 F → + F | - F | num Oppgave: Lag parseringstabellen for G2 ut fra den typen grammatikk den er. Oppgave 2f, 2005

7 F → + F | - F | num Oppgave: Vis hvordan setningen: ”- - 9” vil bli parsert ved å skrive opp, som i boka, stakk-innholdet og input for hver av skift- eller reduser- operasjonene du gjør under parseringen. Parserings-stakk Input Handling 1 $0 --9$ skift 2 $0-5 -9$ skift 3 $ $ skift 4 $0-5-5 ’9’4 $ Reduser: F → num 5 $0-5-5 F 6 $ Reduser: F → - F 6 $0-5F6 $ Reduser: F → - F 7 $0F1 $ Aksepter (red F’ → F) Oppgave 2g, 2005

8 S → T S S → T T → # T T → a Oppgave: Finn First og Follow-mengdene til T og S (og la $ betegne ’end-of-file’ som i boka). First Follow S a # $ T a # a # $ Oppgave 2a, 2006

9 S → T S S → T T → # T T → a Oppgave 2b: Formulér med dine egne ord hvilke sekvenser av terminalsymboler du kan lage ut fra S’. Svar: Vi kan fra S generere en-eller-flere ’a’-er hvor hver a har null eller flere # foran seg. Oppgave 2c: Avgjø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. Svar: Vi har flg. regulære uttrykk { {#}* a}+ Oppgave 2b og 2c, 2006

10 S’ → S S → T S S → T T → # T T → a Oppgave: Innfør et nytt start-symbol S’ → S og lag LR(0)-DFA-en for G rett fra denne grammatikken. Nummerér tilstandene. Oppgave 2d, 2006

11 Oppgave: Gi et kort argument som bestemmer hvike(n) av følgende fem grupper G hører med i: a. LR(1) b. LALR(1) c. SLR(1) d. LR(0) e. Ingen av de overstående. Svar: Den er ikke LR(0) fordi det er en shift/red-konflikt i tilstand 2. Den er SLR(1) fordi skift/reduser-konflikten vi har i tilstand 2 kan løses ved at: Follow-mengden til S ikke inneholder # eller a Altså i tilstand 2: Har vi $ (er eneste symbol i Follow (S) ) gjør vi reduksjonen S -> T Ellers gjør vi en skift Siden den er SLR(1), er den også LALR(1) og LR(1). Den er følgelig også entydig. Oppgave 2e, 2006

12 Oppgave: Lag parseringstabellen for G ut fra den typen grammatikk den er. Svar: (Merk at i tilstand 2 har vi både skift og reduksjon – basert på lookahead-symbolet) Oppgave 2f, 2006

13 Oppgave: Vis hvordan setningen: ”a#a” vil bli parsert. Få også med numrene til tilstandene på stakken. $ 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 Oppgave 2g, 2006


Laste ned ppt "Eksamen 2005, oppgave 2 Eksamen 2006, oppgave 2 Stein Krogdahl INF5110 – V2007."

Liknende presentasjoner


Annonser fra Google