Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005



Relaterede dokumenter
Oversættere Skriftlig eksamen onsdag d. 20. april 2005

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Skriftlig eksamen onsdag d. 19. april 2006

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere / Datalogi 1E

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006

Skriftlig Eksamen Beregnelighed (DM517)

Eksamensopgaver i DM17, Januar 2003

Noter til DM517 Beregnelighed

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj min min min min.

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Sproget Rascal (v. 2)

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen torsdag den 16. januar 2003

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater

Løsningsforslag Skriftlig eksamen 9. januar 2012

It og informationssøgning Forelæsning november 2006 Nils Andersen. Regulære udtryk og formelle sprog

er et helt tal. n 2 AB CD AC BD (b) Vis, at tangenterne fra C til de omskrevne cirkler for trekanterne ACD og BCD står vinkelret på hinanden.

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Regulære udtryk og endelige automater

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003

Find de billeder som vises i begge kasser. Papiret kan eventuelt foldes på midten først - kig først på den øverste kasse. Vend papiret og se om du

Oversættere, ugeopgave 3

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

En karakteristik af de regulære sprog. Ugens emner. FA minimering [ ] MyHill-Nerode-sætningen en algoritme til minimering af FA er

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Yderligere udvidelser af oversætter for Minimal

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

Kapitel 4 Løkker i C#

Grafer og graf-gennemløb

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag d. 16. januar 2004

Kapitel 3 Betinget logik i C#

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Baggrundsnote om logiske operatorer

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Regulære udtryk og endelige automater. Ugens emner

Funktionel afhængighed

Skriftlig Eksamen Diskret Matematik (DM528)

Multiple Choice Prøver

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Regularitet & Automater Eksamensnotater

#AlleKanKode. Lektion 4 - Kontrol flow

Rettevejledning til Georg Mohr-Konkurrencen runde

Integralregning med TI-Interactive! Stamfunktioner Integraler Arealer Jan Leffers (2005)

Ja! det beviste vi uge 16+17

DATALOGI 0 GA. Skriftlig eksamen tirsdag den 18. januar 2005 af to timers varighed. Opgavesæt med vejledende løsninger

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Prøveeksamen MR1 januar 2008

MIPS, registerallokering og MARS

Exceptions i Delphi. Try except

Regularitet og Automater. Tobias Brixen Q4-2012

TALTEORI Ligninger og det der ligner.

DATALOGI MASKINARKITEKTUR

Skriftlig eksamen i Datalogi

Svar på opgave 336 (Januar 2017)

Grafer og graf-gennemløb

Kontrol-strukturer i PHP

Matematik B. Studentereksamen

Databaser Obligatorisk opgave 1

Nogle grundlæggende begreber

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014

Mat C HF basisforløb-intro side 1. Kapitel 5. Parenteser

Elementær Matematik. Mængder og udsagn

Matematik Niveau B Prøveform b

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

ChatBot. Introduktion. Scratch. Nu skal du lære hvordan du programmerer din egen talende robot! Arbejdsliste. Test dit Projekt.

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Videregående Algoritmik. Version med vejledende løsninger indsat!

Skriftlig eksamen, Programmer som Data Onsdag 5. januar 2011

Danmarks Tekniske Universitet

Paradokser og Opgaver

Fang Prikkerne. Introduktion. Scratch

Eksamen i Lineær Algebra

Morse med micro:bit. Morse med micro:bit

Tal og algebra. I kapitlet arbejdes med følgende centrale matematiske begreber: algebra variable. Huskeliste: Tændstikker (til side 146) FRA FAGHÆFTET

Grafer og graf-gennemløb

Komplekse tal. Mikkel Stouby Petersen 27. februar 2013

Reeksamen 2014/2015 Mål- og integralteori

MS Visual Studio Basic En kort vejledning

Klasse 1.4 Michael Jokil

Python programmering. Per Tøfting. MacFest

Skriftlig Eksamen Beregnelighed (DM517)

Løsningsforslag Skriftlig eksamen 3. januar 2013

Skab Din Egen Verden

Lad os som eksempel se på samtidigt kast med en terning og en mønt:

Transkript:

Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige eksamen i Oversættere er bestået, hvis minimum 50% af opgaven er besvaret tilfredsstillende, eller en proportionalt større del er løst delvist tilfredsstillende. Hver opgaves vægt i procent er angivet ved opgavens start. Ligeledes er de enkelte spørgsmåls andel i denne vægt angivet. Alle de sædvanlige hjælpemidler må benyttes, herunder også lydløse elektroniske lommeregnere og PDA ere (f.eks. Palm Pilot), dog ikke hvis disse har trådløs netadgang eller telefoni. En almindelig bærbar PC vil ikke være tilstrækkelig lydløs p.g.a. blæser, harddisk og støjende tastatur. I tvivlstilfælde gælder eksamensvagtens afgørelse. Det er tilladt at bruge blyant til besvarelsen, såfremt denne er tydeligt læselig.

Vejledende løsning til skriftlig eksamen april 2005 i Oversættere side 1 af 7 Opgave 1: Grammatikker og regulære udtryk (23%) Betragt følgende grammatik G: Spørgsmål 1.1 (5%) A B A C B B B C C C Vis at G er tvetydig ved at finde en tegnfølge med to forskellige syntakstræer. Vis syntakstræerne. Den tomme tegnfølge har to forskellige syntakstræer: A B ε A C ε Spørgsmål 1.2 (8%) Find Nullable, FIRST og FOLLOW for hver nonterminal i G. Husk at behandle $ (EOF).

Vejledende løsning til skriftlig eksamen april 2005 i Oversættere side 2 af 7 Vi tilføjer en ekstra startproduktion: A A$. Derefter ses resultatet let: Spørgsmål 1.3 (5%) Eliminer venstrerekursion fra G. Nullable FIRST FOLLOW A true {, } {$} B true { } {, $} C true { } {, $} Der er venstrerekursion i produktionerne for B, som vi omskriver til: B B De andre produktioner er uændrede. Spørgsmål 1.4 (5%) B B B Lav et regulært udtryk, der genkender samme sprog som G. ( )

Vejledende løsning til skriftlig eksamen april 2005 i Oversættere side 3 af 7 Opgave 2: Endelige automater (15%) Vi betragter følgende sprog L: mængden af tegnfølger over alfabetet {a, b, c}, hvor der ikke er gentagne tegn (dvs. at hvert af tegnene a, b og c forekommer højst én gang hver). Spørgsmål 2.1 (3%) Vis fire eksempler på tegnfølger i L. abc ca ε b Spørgsmål 2.2 (12%) Lav en minimal DFA for sproget L, og argumenter for at den er minimal. Vink: Hold styr på brugte tegn. Vi har en tilstand for hver delmængde af mængden {a, b, c}: a b ab a c c b a b ac b abc c c c a a bc b Alle tilstandene er accepterende, da der ikke er krav om et minimalt antal tegn. Da vi skal vide præcis hvilke tegn, vi har brugt, er det nødvendigt med en tilstand for hver delmængde. Derfor er DFA en minimal.

Vejledende løsning til skriftlig eksamen april 2005 i Oversættere side 4 af 7 Opgave 3: Regulære sprog og udtryk (12%) Klassen af regulære sprog er afsluttet under fællesmængde og mængdedifferens, dvs. at fællesmængden af to regulære sprog er regulært og mængdedifferensen mellem to regulære sprog er regulært. Man kan derfor udvide regulære udtryk med operatorer for fællesmængde og mængdedifferens. Angiv fordele og ulemper ved at udvide regulære udtryk med disse konstruktioner. Læg vægt på konsekvenser for brug af regulære udtryk til lexergenerering. Metoden til konstruktion af NFA-fragmenter fra regulære udtryk kan ikke udvides til fællesmængde eller mængdedifferens, da man ikke kan sammensætte NFA er for to sprog til en NFA for fællesmængden eller mængdedifferensen af disse. Derfor må man bruge mere komplicerede metoder, hvilket er en ulempe. En fordel er, at man nemmere kan udtrykke sprog såsom alle variabelnavne, der ikke er nøgleord eller heltalskonstanter, der er delelige med både 3 og 7. Sidstnævnte er dog sjældent relevant i oversættere. En ulempe er, at man kan lave regulære udtryk, som er svære at gennemskue.

Vejledende løsning til skriftlig eksamen april 2005 i Oversættere side 5 af 7 Opgave 4: Mellemkodegenerering (35%) Vi udvider Grammar 6.7 fra Basics of Compiler Design med følgende produktioner: Cond orderedby relop IdList IdList id IdList id, IdList Semantikken er, at betingelsen er sand, hvis hvert par af to efterfølgende variabler i listen af variabler er ordnede med den angivne relationelle operator. For eksempel er orderedby < x,y,z sand, hvis x<y og y<z. Sammenligningerne foretages fra venstre mod højre (så i eksemplet ovenfor skal sammenligningen x<y foretages før y<z). Sammenligningerne skal stoppes, så snart en af dem er falsk (idet den samlede betingelse dermed bliver falsk). I eksemplet ovenfor skal sammenligningen y<z altså ikke foretages, hvis x<y er falsk. Hvis der kun er én variabel i listen, er betingelsen altid sand. Spørgsmål 4.1 (10%) Vis (håndgenereret) mellemkode for orderedby < x,y,z, så den ved sand betingelse hopper til Ltrue og ved falsk betingelse hopper til Lfalse. Brug mellemkodevariabler med samme navne som de oprindelige variabler (dvs. x, y og z) plus eventuelt ekstra temporære variabler. IF x<y THEN L1 ELSE Lfalse LABEL L1 IF y<z THEN Ltrue ELSE Lfalse Spørgsmål 4.2 (25%) Udvid funktionen Trans Cond fra Figure 6.8 i Basics of Compiler Design, så den kan generere kode for den nye konstruktion. Vink: Tilføj en eller flere oversætterfunktioner for IdList og lav nedarvede attributter for bl.a. den relationelle operator og den foregående variabel.

Vejledende løsning til skriftlig eksamen april 2005 i Oversættere side 6 af 7 Trans Cond (Cond,label t,label f,vtable, ftable) = case Cond of orderedby relop IdList op = transop(opname(relop)) Trans IdList (IdList,op,label t,label f,vtable) Trans IdList (IdList,op,label t,label f,vtable) = case IdList of id [GOTO label t ] id, IdList v = lookup(vtable, name(id)) Trans IdList (IdList,op,v,label t,label f,vtable) Tran s IdList (IdList,op,v,label t,label f,vtable) = case IdList of id w = lookup(vtable, name(id)) [IF vopw THEN label t ELSE label f ] id, IdList w = lookup(vtable, name(id)) label 1 = newlabel() code = Trans IdList (IdList,op,w,label t,label f,vtable) [IF vopw THEN label 1 ELSE label f,label label 1 ] ++code

Vejledende løsning til skriftlig eksamen april 2005 i Oversættere side 7 af 7 Opgave 5: Graffarvning (15%) Betragt følgende interferensgraf: a e b c d Spørgsmål 5.1 (10%) Lav en farvning af grafen med tre forskellige farver (registre). Det er muligt, så hvis du får spill, så prøv at træffe andre valg. Vis stakken som i figur 8.6 og 8.9 i Basics of Compiler Design. e 1 b e 2 d b,e 3 c b,d 1 a b, c, e 3 Spørgsmål 5.2 (5%) Hvis du kun har to farver (registre), hvilken variabel vil du helst spille, og hvorfor? Hvis man fjerner b fra grafen, kan resten af grafen farves med to farver. Hvis man fjerner enhver anden fra grafen, skal der stadig bruges tre farver. Derfor er det oplagt at spille b.