NDAA04011U Oversættere (OV)
Årgang 2013/2014
Engelsk titel
Introduction to Compilers (OV)
Uddannelse
Bacheloruddannelsen i
datalogi
Kursusindhold
Formål:
At give de studerende indsigt i, hvordan programmer skrevet i
højniveausprog oversættes til kode på maskiniveau.
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.
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ålbeskrivelser
Kompetencer
- at designe og implementere en oversætter fra et højniveaussprog til maskinkod;
- at vurdere og bruge passende værktøjer og biblioteker til oversættelsesprocessen;
- at vurdere ressourceforbrug (tid og plads) af højniveausprogrammer fra deres oversættelse til maskinkod.
- at bruge værktøjer til leksikalsk og syntaktisk analyse kompetent;
- at beskrive og vurdere oversætterudvikling i skriftlig form.
- at redegøre faseopdeling af oversættelsesprocessen og deres særlige formål
- at anvende teoretisk indsigt på: Formelle sprog, regulært udtryk, kontekstfri grammatikker, graffarvning;
- at forklare hvordan oversætterværktøjer arbejder, og deres begrænsninger
Undervisningsmateriale
Se Absalon når kurset er
blevet oprettet.
Forventes at
være: Torben Mogensen, "Introduction to Compiler Design",
Springer, 2011.
Faglige forudsætninger
Kendskab til
maskinkodeprogrammering samt programmering i Standard
ML.
Undervisningsform
Undervisningen vil foregå
med en kombination af forelæsninger, øvelser og praktisk
rapportopgavearbejde, heriblandt en løbende
godkendelsesrapportopgave, som stilles ved kursets start og som
afleveres efter fem uger, og løses i grupper på maksimalt tre
personer, samt fem mindre individuelle opgaver.
Arbejdsbelastning
- Kategori
- Timer
- Eksamen
- 20
- Forberedelse
- 84
- Forelæsninger
- 28
- Praktiske øvelser
- 14
- Projektarbejde
- 60
- I alt
- 206
Tilmelding
Selvbetjeningen på KUnet
Som meritstuderende - klik her!
Som enkeltfags-studerende (efter- og videreuddannelse) - klik her!
Som enkeltfags-studerende (efter- og videreuddannelse) - klik her!
Eksamen
- Point
- 7,5 ECTS
- Prøveform
- Skriftlig aflevering, 5 dageDer 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. Aflevering på Absalon.
- Krav til indstilling til eksamen
- 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. - Hjælpemidler
- Alle hjælpemidler tilladt
- Bedømmelsesform
- 7-trins skala
- Censurform
- Ekstern censur
- 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.
Kriterier for bedømmelse
Se målbeskrivelse.
Kursusinformation
- Sprog
- Engelsk
- Kursuskode
- NDAA04011U
- Point
- 7,5 ECTS
- Niveau
- Bachelor
- Varighed
- 1 blok
- Placering
- Blok 2
- Skemagruppe
- C
- Kursuskapacitet
- 165
- Efter- og videreuddannelse
- Studienævn
- Studienævn for Matematik og Datalogi
Udbydende institut
- Datalogisk Institut
Kursusansvarlige
- Jost Berthold (berthold@di.ku.dk)
Undervisere
Cosmin Eugen Oancea, cosmin.oancea@diku.dk.
Gemt den
22-11-2013