uc:sendtilenven runat server id uc_sendtilenven
Ændre størrelse på tekst Print

Oversættere


Semesterangivelse: Efterårs kursus Kurset udbydes i blok 2 Kurset udbydes i skemagruppe C Kurset giver 7,5 ETCS point

 


Udgave: Efterår 2012 NAT
ECTS points: 7,5
Point: 7,5
Blokstruktur: 2. blok
Skemagruppe: C
Fagområde: dat
Varighed: 7 uger + eksamen
Omfang: 2x2 timers forelæsning og 1x2 timers øvelser pr. uge.
Institutter: Datalogisk Institut
Uddannelsesdel: Bachelor niveau
Kontaktpersoner: Jost Berthold, e-mail: berthold@diku.dk
Andre undervisere: Cosmin Oancea
Skema- oplysninger:  Vis skema for kurset
Samlet oversigt over tid og sted for alle kurser inden for Lektionsplan for Det Naturvidenskabelige Fakultet Efterår 2012 NAT
Undervisnings- form: Undervisningen vil foregå med en kombination af forelæsninger, øvelser og praktisk rapportopgavearbejde. Fordelingen er som følger:
  • 28 forelæsningstimer, fordelt som to dobbeltforelæsninger i hver af de syv undervisningsuger.
  • 14 øvelsestimer, fordelt som to sammenhængende timer pr. uge i 7 uger. Øvelsestimerne bruges dels til regning af små teoretiske opgaver samt i mindre omfang til øvelser relateret til rapportopgaverne.
  • En løbende godkendelsesrapportopgave, som stilles ved kursets start og som afleveres efter fem uger. Opgaven løses i grupper på indtil tre personer.
  • Fem individuelle teoretiske ugeopgaver, hvoraf mindst fire skal godkendes.
Formål: At give de studerende indsigt i, hvordan programmer skrevet i højniveausprog oversættes til kode på maskiniveau.
Indhold: I undervisningen gennemgås de forskellige faser af en oversætter: Leksikalsk analyse, syntaksanalyse, typecheck, kodegenerering samt registerallokering. De grundlæggende metoder til disse faser gennemgås, inklusive brug og virkemåde af semi-automatiske værktøjer. Forskelle mellem fortolkning og oversættelse beskrives. I forbindelse med leksikalsk analyse og syntaksanalyse vises det, hvordan beskrivelser, der er bekvemme for mennesker (hhv. regulære udtryk og kontekstfri grammatikker), bliver omformet til automater, som er bekvemme for datamater. Disse omformninger er grundlaget for værktøjer, der automatisk kan lave leksikalske analysatorer og syntaksanalysatorer ud fra beskrivelser. I forbindelse med generering af mellem- og maskinkode gennemgås, hvordan man på basis af den syntaktiske struktur af et program kan danne maskinkode. Der bliver vist forskellige metoder til at administrere lager for oversatte programmer, og hvordan det får indflydelse på, hvilken kode man genererer. Desuden gennemgås metoder til typecheck af programmer, registerallokering og optimering.
Målbeskrivelse: Den studerende skal kunne:
  • Redegøre for opdelingen af oversættelsesprocessen i faser samt formålet med denne faseopdeling.
  • Bruge regulære udtryk, endelige automater og kontekstfri grammatikker til at beskrive sprog, og afgøre om tegnfølger ligger i de beskrevne sprog samt bearbejde kontekstfri grammatikker med henblik på syntaksanalyse, så strukturen (som syntakstræ) af en tegnfølge er entydig og afspejler den tilsigtede programstruktur.
  • Med brug af værktøjer til leksikalsk analyse, syntaksanalyse og registerallokering designe og implementere en oversætter fra et simpelt statisk typet højniveausprog til maskinkode samt beskrive arbejdet i en rapport, der følger fagets traditioner omkring designproces og vurdering af resultat.
  • Ud fra kendskabet til oversætteres metoder relatere højniveaukonstruktioner til maskinniveauimplementeringer og bruge dette til at vurdere ressourceforbrug (tid og plads) af programmer skrevet i højniveausprog.
Lærebøger: Forventes at være: Torben Mogensen, "Introduction to Compiler Design".
Tilmelding: Via KUnet fra 15. maj til 1. juni.
Faglige forudsætninger: Kendskab til maskinkodeprogrammering samt programmering i Standard ML.
Formelle krav: Ingen.
Eksamensform: Der gives en uge (fem dage) til løsning af en karaktergivende individuel rapportopgave, der bygger videre på godkendelsesrapportopgaven. Der stilles et udvalg af flere forskellige lignende opgaver. Studerende, der har været i gruppe sammen til godkendelsesopgaven, kan ikke lave samme opgave i karakteropgaven. Der trækkes indenfor hver gruppe lod om vælgerrækkefølge til opgaverne. Eksaminator forestår lodtrækningen. Ekstern censur. Karakter efter 7-trinsskalaen. Aflevering sker i Absalon.

For at kunne deltage i eksamen skal følgende krav være opfyldt:
1. Godkendelsesrapportopgaven skal være godkendt.
2. Mindst fire ud af de fem ugeopgaver skal være godkendt. Der er mulighed for genaflevering af de fire første ugeopgaver, såfremt de ikke godkendes i første omgang. Af hensyn til tidsrammen er det ikke muligt at genaflevere godkendelsesrapportopgaven eller den femte ugeopgave.

Reeksamen: Som ved ordinær eksamen, dog med et mindre udvalg af individuelle opgaver og med bortfald af kravet om, at medlemmer af samme gruppe ikke må løse samme opgave. Aflevering sker i Absalon.
Eksamen: 5 dages hjemmeopgave udleveres den 14. januar og afleveres den 18. januar 2013. Reeksamen: 5 dages hjemmeopgave udleveres den 15. og afleveres den 19. april 2013.
Kursus hjemmeside:
Bemærkninger: Nærmere oplysninger om forelæsninger, øvelser, m.m. vil fremgå af kursets hjemmeside.

Forelæsninger og prøvetekster er på dansk, men lærebogen og supplerende dokumentation er på engelsk.

Kursusevaluering: Fakultetets elektroniske spørgeskema.
Undervisnings- sprog: Kun dansk
Sidst redigeret: 5/9-2012



Københavns Universitet